SlideShare a Scribd company logo
How Maintainability Issues of Android Apps Evolve
Ivano Malavolta - Vrije Universiteit Amsterdam
Roberto Verdecchia - Vrije Universiteit Amsterdam | Gran Sasso Science Institute
Bojan Filipovic – Vrije Universiteit Amsterdam
Magiel Bruntink – Software Improvement Group - Amsterdam
Patricia Lago – Vrije Universiteit Amsterdam
VRIJE
UNIVERSITEIT
AMSTERDAM
VRIJE
UNIVERSITEIT
AMSTERDAM
Android
2
3.3 million Android apps available
on the Google Play store
>1k apps published everyday
>1.5 billion apps downloaded
every month
VRIJE
UNIVERSITEIT
AMSTERDAM
3
Why apps maintainability is important
High expectations
Continous feedback
Frequent updates
Continuous maintenance
VRIJE
UNIVERSITEIT
AMSTERDAM
Goal and research questions
4
To empirically characterize how maintainability issues of
Android apps evolve
Which are the most recurrent types of maintainability issues in Android apps?
How does the density of Android maintainability issues evolve over time?
What are the development activities in which maintainability hotspots occur?
RQ1
RQ2
RQ3
VRIJE
UNIVERSITEIT
AMSTERDAM
Building the dataset
5
Union
App published in
Google Play?
9,400
Remove
duplicates
Has
manifest?
Has proper Android
source code?
Active
GitHub repo?
Remove
impurities
Enough commits
frequency?
8,049 6,619
6,454
4,756
2,238
1,410
GitHub repos
(434)
Commits metadata
(106,689)
Collect commits
metadata
• Kotlin code
• Missing Java code
• Android libraries
• #commits >= 6
• lifespan >= 8 weeks
• changed dates
• forks
• not analyzable
• Keep weeks with
at least 1 commit
• #weeks >= 8
VRIJE
UNIVERSITEIT
AMSTERDAM
Data extraction
6
GitHub repos
(434)
Clone all
repositories
Locally-cloned
repos
Identify
snapshots
Maintainability
issues
Weekly snapshots
(9,945)
Run static
analysis
For each snapshot
SAT tool
Checkout at
last commit
VRIJE
UNIVERSITEIT
AMSTERDAM
Extracted maintainability issues
Software Analysis Toolkit
Developed by SIG
7
SAT tool
Maintainability issue Description
Unit size Methods exceeding 30 lines of code
Unit complexity Methods whose McCabe Cyclomatic Complexity exceeds 10
Unit interfacing Methods having more than 4 formal parameters
Module coupling Classes exceeding 20 incoming dependencies
Duplication Code clones of at least 6 lines of code
Maintainability The total count of the previous issue types
1. Fully automatic
2. No need to build the apps
3. Close contact with SAT developers
4. Its supported metrics are correlated with the
speed at which issues are solved by developers[1]
Why SAT
[1] Bijlsma, D., Ferreira, M. A., Luijten, B., & Visser, J. (2012). Faster issue resolution with
higher technical quality of software. Software quality journal, 20(2), 265-285.
VRIJE
UNIVERSITEIT
AMSTERDAM
Most recurrent maintainability issues (RQ1)
8
Which are the most recurrent types of maintainability issues in Android apps?
How does the density of Android maintainability issues evolve over time?
What are the development activities in which maintainability hotspots occur?
RQ1
RQ2
RQ3
020406080100
MT US UC UI MC DP
Type of maintainability issue
Density
M
aintainability
(TO
TAL)
Unit size
Unit com
plexity
Unit interfacing
M
odule
coupling
Code
duplication
Density
of issues
#issues at commit c
NKLOC of the app after c
Average of 18 issues every 1k
LOCs
DUPLICATION and UNIT SIZE
are the most recurring issues
in Android apps
Is DUPLICATION really
an issue in Android?
VRIJE
UNIVERSITEIT
AMSTERDAM
How do maintainability issues evolve? (RQ2)
9
Which are the most recurrent types of maintainability issues in Android apps?
How does the density of Android maintainability issues evolve over time?
What are the development activities in which maintainability hotspots occur?
RQ1
RQ2
RQ3
Does the density of maintainability issues actually change over time?
Weekly snapshots
1 time series for each pair <app, issue type>
Check stationarity
NON-stationarity for
93% of the apps
Android developers’ activities can impact the
maintainability of their apps over time
Weeks
Density
VRIJE
UNIVERSITEIT
AMSTERDAM
Evolution trends identification (RQ2)
10
Which are the most recurrent types of maintainability issues in Android apps?
How does the density of Android maintainability issues evolve over time?
What are the development activities in which maintainability hotspots occur?
RQ1
RQ2
RQ3
Time series
Seasonal
Trend
Remainder
1,230 distinct trends
Open card
sorting
Taxonomy of 12
evolution trends
sampling
ADCPU−16Emu (I)
AttysScope (SI)
SGit (IP)
AndroidBootcampProject (PI)
BitcoinChecker (D)
Ursmu (SD)
BirdWalk (DP)
MLManager (PD)
CineTime (H)
RadyoMenemenPro (V)
PixelDungRemix (A)
android−simple−gameapi (C)
Increase
Stable
increase
Increasing
plateau
Plateau
increasing
Decrease
Stable
decrease
Decreasing
plateau
Plateau
decreasing
Hill
Valley
Anomalous
Constant
Growth ReductionMixed Constant
Weeks
Density
Weeks
VRIJE
UNIVERSITEIT
AMSTERDAM
The taxonomy of evolution trends (RQ2)
Which are the most recurrent types of maintainability issues in Android apps?
How does the density of Android maintainability issues evolve over time?
What are the development activities in which maintainability hotspots occur?
RQ1
RQ2
RQ3
ADCPU−16Emu (I)
AttysScope (SI)
SGit (IP)
AndroidBootcampProject (PI)
BitcoinChecker (D)
Ursmu (SD)
BirdWalk (DP)
MLManager (PD)
CineTime (H)
RadyoMenemenPro (V)
PixelDungRemix (A)
android−simple−gameapi (C)
Increase
Stable
increase
Increasing
plateau
Plateau
increasing
Decrease
Stable
decrease
Decreasing
plateau
Plateau
decreasing
Hill
Valley
Anomalous
Constant
Growth MixedReduction Constant
VRIJE
UNIVERSITEIT
AMSTERDAM
Evolution trends by maintainability issue type
(RQ2)
12
Which are the most recurrent types of maintainability issues in Android apps?
How does the density of Android maintainability issues evolve over time?
What are the development activities in which maintainability hotspots occur?
RQ1
RQ2
RQ3
DP
MC
UI
UC
US
MT
I SI IP PI D SD DP PD H V A C
10
20
30
40
Maintainability
Unit size
Unit complexity
Unit interfacing
Module coupling
Code duplication
Growth Reduction Mixed Constant
Increasing
plateau
Hill
Mainly a growth in time
• with recurrent plateau
Counts
Increase
Stable
increase
Plateau
increasing
Decreasing
plateau
Decrease
Stable
decrease
Plateau
decreasing
Valley
M
ix
Constant
Are developers resolving unit
interfacing and duplication issues?
SGit (IP)
CineTime (H)
VRIJE
UNIVERSITEIT
AMSTERDAM
Developers’ activities (RQ3)
13
Which are the most recurrent types of maintainability issues in Android apps?
How does the density of Android maintainability issues evolve over time?
What are the development activities in which maintainability hotspots occur?
RQ1
RQ2
RQ3
0
10
20
30
40
Weeks
Maintainability(MT)Maintainabilityissuesdensity
Weeks
Maintainability hotspots
VRIJE
UNIVERSITEIT
AMSTERDAM
Developers’ activities (RQ3)
14
Which are the most recurrent types of maintainability issues in Android apps?
How does the density of Android maintainability issues evolve over time?
What are the development activities in which maintainability hotspots occur?
RQ1
RQ2
RQ3
0
10
20
30
40
Weeks
Maintainability(MT)
0
10
20
30
40
Weeks
Maintainability(MT)
App time series
Identify
hotspots
0
10
20
30
40
Weeks
Maintainability(MT)
Hotspots do not occur often in the app lifetime
(max: 8), average of ~1 hotspot per app
Content
analysis
sessions
Taxonomy of Android
developers activities [1]
Hotspots occur independently of the type of
developer’s activities
2,112 commits
sampling
[1] Pascarella, Geiger, Palomba, Di Nucci, Malavolta, Bacchelli.
Self-Reported Activities of Android Developers. MOBILESoft 2018
3,374
Counts
VRIJE
UNIVERSITEIT
AMSTERDAM
Conclusions
VRIJE
UNIVERSITEIT
AMSTERDAM
3
Why apps maintainability is important
High expectations
Continous feedback
Frequent updates
Continuous maintenance
VRIJE
UNIVERSITEIT
AMSTERDAM
Most recurrent maintainability issues (RQ1)
8
020406080100
MT US UC UI MC DP
Type of maintainability issue
Density
M
aintainability
(TO
TAL)
Unit size
Unit com
plexity
Unit interfacing
M
odule
coupling
Code
duplication
Density
of issues
#issues at commit c
NKLOC of the app after c
Average of 18 issues every 1k
LOCs
DUPLICATION and UNIT SIZE
are the most recurring issues
in Android apps
Is DUPLICATION really
an issue in Android?
VRIJE
UNIVERSITEIT
AMSTERDAM
Evolution trends by maintainability issue type
(RQ2)
12
DP
MC
UI
UC
US
MT
I SI IP PI D SD DP PD H V A C
10
20
30
40
Maintainability
Unit size
Unit complexity
Unit interfacing
Module coupling
Code duplication
Growth Reduction Mixed Constant
Increasing
plateau
Hill
Mainly a growth in time
• with recurrent plateau
Are developers resolving unit
interfacing and duplication issues?
Maintainability issues
rarely decrease!
VRIJE
UNIVERSITEIT
AMSTERDAM
Developers’ activities (RQ3)
14
0
10
20
30
40
Weeks
Maintainability(MT)
0
10
20
30
40
Weeks
Maintainability(MT)
App time series
Identify
hotspots
0
10
20
30
40
Weeks
Maintainability(MT)
Hotspots do not occur often in the app lifetime
(max: 8), average of >1 hotspot per app
Content
analysis
sessions
Taxonomy of Android
developers activities [1]
Hotspots occur independently of the type of
developer’s activities
2,112 commits
sampling
[1] Pascarella, Geiger, Palomba, Di Nucci, Malavolta, Bacchelli.
Self-Reported Activities of Android Developers. MOBILESoft 2018
Replication package
https://github.com/S2-group/ICSME2018ReplicationPackage
VRIJE
UNIVERSITEIT
AMSTERDAM
BACKUP SLIDES
16
VRIJE
UNIVERSITEIT
AMSTERDAM
Demographics
17
10 20 50 100 200 500 1000 2000
Number of commits per app
1 2 5 10 20 50 100 200
Number of commits per snapshot
1 2 5 10 20 50 100
Number of unique contributors per app
10 20 50 100 200
Number of snapshots per app
2008 2009 2011 2012 2013 2014 2015 2016
Development start date per app
VRIJE
UNIVERSITEIT
AMSTERDAM
Maintainability hotspots identification
18
VRIJE
UNIVERSITEIT
AMSTERDAM
SAT processing time and resources
19
Average execution time = 8.73s per snapshot
Total processing time = ~12 days
LOCs processed = ~800 million
Checked-out resources = ~7 terabytes

More Related Content

PDF
Reconstructing microservice-based architectures
PDF
[2017/2018] Agile development
PDF
Collaborative Model-Driven Software Engineering: a Classification Framework a...
PDF
[2017/2018] Introduction to Software Architecture
PDF
Software sustainability and Green IT
PPTX
A Preliminary Study on Architecting Cyber-Physical Systems
PDF
The role of MDE in Software Architecture Descriptions
PDF
SiriusCon17 - A Graphical Approach to Modularization and Layering of Metamodels
Reconstructing microservice-based architectures
[2017/2018] Agile development
Collaborative Model-Driven Software Engineering: a Classification Framework a...
[2017/2018] Introduction to Software Architecture
Software sustainability and Green IT
A Preliminary Study on Architecting Cyber-Physical Systems
The role of MDE in Software Architecture Descriptions
SiriusCon17 - A Graphical Approach to Modularization and Layering of Metamodels

Similar to How Maintainability Issues of Android Apps Evolve [ICSME 2018] (20)

PDF
ASE 2016 Taming Android Fragmentation: Characterizing and Detecting Compatibi...
PPT
Relevance, Benefits, and Problems of Software Modelling and Model-Driven Tech...
DOCX
Android-manifest extraction and labeling method for malware compilation and d...
PPTX
Intelligence on the Intractable Problem of Software Security
PDF
The state-of-the-art in Mobile apps
PDF
IRJET- Approaching Highlights and Security issues in Software Engineering...
PDF
VisionMobile presentation @ Campus Party 2013, London
PPTX
Thorsignia - Custom software development services in india
PDF
Leveraging Vulnerability Management Beyond DPR (Discovery - Prioritization - ...
PDF
Technology and Agriculture based android application
PDF
Railway Safety Protection with Android Mobile Application for 5G New Radio Ne...
PDF
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...
PPTX
A Control Mechanism of Multiple Visualization Applications on SAGE-enabled Ti...
PDF
Mobile app
PDF
Software Engineering - Basics
PPTX
Mobile Testing in the Cloud
PDF
Radware - When It Comes to ADCs, Perception is Not Reality
PDF
When it comes to ADCs, Perception is not Reality - Radware
PPTX
Large-Scale Empirical Studies of Mobile Apps
ASE 2016 Taming Android Fragmentation: Characterizing and Detecting Compatibi...
Relevance, Benefits, and Problems of Software Modelling and Model-Driven Tech...
Android-manifest extraction and labeling method for malware compilation and d...
Intelligence on the Intractable Problem of Software Security
The state-of-the-art in Mobile apps
IRJET- Approaching Highlights and Security issues in Software Engineering...
VisionMobile presentation @ Campus Party 2013, London
Thorsignia - Custom software development services in india
Leveraging Vulnerability Management Beyond DPR (Discovery - Prioritization - ...
Technology and Agriculture based android application
Railway Safety Protection with Android Mobile Application for 5G New Radio Ne...
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...
A Control Mechanism of Multiple Visualization Applications on SAGE-enabled Ti...
Mobile app
Software Engineering - Basics
Mobile Testing in the Cloud
Radware - When It Comes to ADCs, Perception is Not Reality
When it comes to ADCs, Perception is not Reality - Radware
Large-Scale Empirical Studies of Mobile Apps
Ad

More from Ivano Malavolta (20)

PDF
On-Device or Remote? On the Energy Efficiency of Fetching LLM-Generated Conte...
PDF
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
PDF
The H2020 experience
PDF
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
PDF
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
PDF
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
PDF
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
PDF
Modeling behaviour via UML state machines [Software Design] [Computer Science...
PDF
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
PDF
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
PDF
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
PDF
Modeling and abstraction, software development process [Software Design] [Com...
PDF
[2017/2018] AADL - Architecture Analysis and Design Language
PDF
[2017/2018] Architectural languages
PDF
[2017/2018] RESEARCH in software engineering
PDF
Mobile Apps quality - a tale about energy, performance, and users’ perception
PDF
[13 - B] Experiment reporting
PDF
[13 - A] Experiment validity
PDF
[09-A] Statistical tests and effect size
PDF
[07-B] Statistical hypothesis testing
On-Device or Remote? On the Energy Efficiency of Fetching LLM-Generated Conte...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
The H2020 experience
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Modeling and abstraction, software development process [Software Design] [Com...
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] Architectural languages
[2017/2018] RESEARCH in software engineering
Mobile Apps quality - a tale about energy, performance, and users’ perception
[13 - B] Experiment reporting
[13 - A] Experiment validity
[09-A] Statistical tests and effect size
[07-B] Statistical hypothesis testing
Ad

Recently uploaded (20)

PDF
CIFDAQ's Token Spotlight: SKY - A Forgotten Giant's Comeback?
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
PPTX
Web Security: Login Bypass, SQLi, CSRF & XSS.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
REPORT: Heating appliances market in Poland 2024
PDF
KodekX | Application Modernization Development
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
PDF
Google’s NotebookLM Unveils Video Overviews
PDF
Smarter Business Operations Powered by IoT Remote Monitoring
PPTX
ABU RAUP TUGAS TIK kelas 8 hjhgjhgg.pptx
PDF
Modernizing your data center with Dell and AMD
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
creating-agentic-ai-solutions-leveraging-aws.pdf
PDF
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
PDF
CIFDAQ's Market Wrap: Ethereum Leads, Bitcoin Lags, Institutions Shift
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
madgavkar20181017ppt McKinsey Presentation.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
CIFDAQ's Token Spotlight: SKY - A Forgotten Giant's Comeback?
A Day in the Life of Location Data - Turning Where into How.pdf
Web Security: Login Bypass, SQLi, CSRF & XSS.pptx
NewMind AI Monthly Chronicles - July 2025
REPORT: Heating appliances market in Poland 2024
KodekX | Application Modernization Development
NewMind AI Weekly Chronicles - August'25 Week I
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
Google’s NotebookLM Unveils Video Overviews
Smarter Business Operations Powered by IoT Remote Monitoring
ABU RAUP TUGAS TIK kelas 8 hjhgjhgg.pptx
Modernizing your data center with Dell and AMD
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
creating-agentic-ai-solutions-leveraging-aws.pdf
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
CIFDAQ's Market Wrap: Ethereum Leads, Bitcoin Lags, Institutions Shift
CIFDAQ's Market Insight: SEC Turns Pro Crypto
madgavkar20181017ppt McKinsey Presentation.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy

How Maintainability Issues of Android Apps Evolve [ICSME 2018]

  • 1. How Maintainability Issues of Android Apps Evolve Ivano Malavolta - Vrije Universiteit Amsterdam Roberto Verdecchia - Vrije Universiteit Amsterdam | Gran Sasso Science Institute Bojan Filipovic – Vrije Universiteit Amsterdam Magiel Bruntink – Software Improvement Group - Amsterdam Patricia Lago – Vrije Universiteit Amsterdam VRIJE UNIVERSITEIT AMSTERDAM
  • 2. VRIJE UNIVERSITEIT AMSTERDAM Android 2 3.3 million Android apps available on the Google Play store >1k apps published everyday >1.5 billion apps downloaded every month
  • 3. VRIJE UNIVERSITEIT AMSTERDAM 3 Why apps maintainability is important High expectations Continous feedback Frequent updates Continuous maintenance
  • 4. VRIJE UNIVERSITEIT AMSTERDAM Goal and research questions 4 To empirically characterize how maintainability issues of Android apps evolve Which are the most recurrent types of maintainability issues in Android apps? How does the density of Android maintainability issues evolve over time? What are the development activities in which maintainability hotspots occur? RQ1 RQ2 RQ3
  • 5. VRIJE UNIVERSITEIT AMSTERDAM Building the dataset 5 Union App published in Google Play? 9,400 Remove duplicates Has manifest? Has proper Android source code? Active GitHub repo? Remove impurities Enough commits frequency? 8,049 6,619 6,454 4,756 2,238 1,410 GitHub repos (434) Commits metadata (106,689) Collect commits metadata • Kotlin code • Missing Java code • Android libraries • #commits >= 6 • lifespan >= 8 weeks • changed dates • forks • not analyzable • Keep weeks with at least 1 commit • #weeks >= 8
  • 6. VRIJE UNIVERSITEIT AMSTERDAM Data extraction 6 GitHub repos (434) Clone all repositories Locally-cloned repos Identify snapshots Maintainability issues Weekly snapshots (9,945) Run static analysis For each snapshot SAT tool Checkout at last commit
  • 7. VRIJE UNIVERSITEIT AMSTERDAM Extracted maintainability issues Software Analysis Toolkit Developed by SIG 7 SAT tool Maintainability issue Description Unit size Methods exceeding 30 lines of code Unit complexity Methods whose McCabe Cyclomatic Complexity exceeds 10 Unit interfacing Methods having more than 4 formal parameters Module coupling Classes exceeding 20 incoming dependencies Duplication Code clones of at least 6 lines of code Maintainability The total count of the previous issue types 1. Fully automatic 2. No need to build the apps 3. Close contact with SAT developers 4. Its supported metrics are correlated with the speed at which issues are solved by developers[1] Why SAT [1] Bijlsma, D., Ferreira, M. A., Luijten, B., & Visser, J. (2012). Faster issue resolution with higher technical quality of software. Software quality journal, 20(2), 265-285.
  • 8. VRIJE UNIVERSITEIT AMSTERDAM Most recurrent maintainability issues (RQ1) 8 Which are the most recurrent types of maintainability issues in Android apps? How does the density of Android maintainability issues evolve over time? What are the development activities in which maintainability hotspots occur? RQ1 RQ2 RQ3 020406080100 MT US UC UI MC DP Type of maintainability issue Density M aintainability (TO TAL) Unit size Unit com plexity Unit interfacing M odule coupling Code duplication Density of issues #issues at commit c NKLOC of the app after c Average of 18 issues every 1k LOCs DUPLICATION and UNIT SIZE are the most recurring issues in Android apps Is DUPLICATION really an issue in Android?
  • 9. VRIJE UNIVERSITEIT AMSTERDAM How do maintainability issues evolve? (RQ2) 9 Which are the most recurrent types of maintainability issues in Android apps? How does the density of Android maintainability issues evolve over time? What are the development activities in which maintainability hotspots occur? RQ1 RQ2 RQ3 Does the density of maintainability issues actually change over time? Weekly snapshots 1 time series for each pair <app, issue type> Check stationarity NON-stationarity for 93% of the apps Android developers’ activities can impact the maintainability of their apps over time Weeks Density
  • 10. VRIJE UNIVERSITEIT AMSTERDAM Evolution trends identification (RQ2) 10 Which are the most recurrent types of maintainability issues in Android apps? How does the density of Android maintainability issues evolve over time? What are the development activities in which maintainability hotspots occur? RQ1 RQ2 RQ3 Time series Seasonal Trend Remainder 1,230 distinct trends Open card sorting Taxonomy of 12 evolution trends sampling ADCPU−16Emu (I) AttysScope (SI) SGit (IP) AndroidBootcampProject (PI) BitcoinChecker (D) Ursmu (SD) BirdWalk (DP) MLManager (PD) CineTime (H) RadyoMenemenPro (V) PixelDungRemix (A) android−simple−gameapi (C) Increase Stable increase Increasing plateau Plateau increasing Decrease Stable decrease Decreasing plateau Plateau decreasing Hill Valley Anomalous Constant Growth ReductionMixed Constant Weeks Density Weeks
  • 11. VRIJE UNIVERSITEIT AMSTERDAM The taxonomy of evolution trends (RQ2) Which are the most recurrent types of maintainability issues in Android apps? How does the density of Android maintainability issues evolve over time? What are the development activities in which maintainability hotspots occur? RQ1 RQ2 RQ3 ADCPU−16Emu (I) AttysScope (SI) SGit (IP) AndroidBootcampProject (PI) BitcoinChecker (D) Ursmu (SD) BirdWalk (DP) MLManager (PD) CineTime (H) RadyoMenemenPro (V) PixelDungRemix (A) android−simple−gameapi (C) Increase Stable increase Increasing plateau Plateau increasing Decrease Stable decrease Decreasing plateau Plateau decreasing Hill Valley Anomalous Constant Growth MixedReduction Constant
  • 12. VRIJE UNIVERSITEIT AMSTERDAM Evolution trends by maintainability issue type (RQ2) 12 Which are the most recurrent types of maintainability issues in Android apps? How does the density of Android maintainability issues evolve over time? What are the development activities in which maintainability hotspots occur? RQ1 RQ2 RQ3 DP MC UI UC US MT I SI IP PI D SD DP PD H V A C 10 20 30 40 Maintainability Unit size Unit complexity Unit interfacing Module coupling Code duplication Growth Reduction Mixed Constant Increasing plateau Hill Mainly a growth in time • with recurrent plateau Counts Increase Stable increase Plateau increasing Decreasing plateau Decrease Stable decrease Plateau decreasing Valley M ix Constant Are developers resolving unit interfacing and duplication issues? SGit (IP) CineTime (H)
  • 13. VRIJE UNIVERSITEIT AMSTERDAM Developers’ activities (RQ3) 13 Which are the most recurrent types of maintainability issues in Android apps? How does the density of Android maintainability issues evolve over time? What are the development activities in which maintainability hotspots occur? RQ1 RQ2 RQ3 0 10 20 30 40 Weeks Maintainability(MT)Maintainabilityissuesdensity Weeks Maintainability hotspots
  • 14. VRIJE UNIVERSITEIT AMSTERDAM Developers’ activities (RQ3) 14 Which are the most recurrent types of maintainability issues in Android apps? How does the density of Android maintainability issues evolve over time? What are the development activities in which maintainability hotspots occur? RQ1 RQ2 RQ3 0 10 20 30 40 Weeks Maintainability(MT) 0 10 20 30 40 Weeks Maintainability(MT) App time series Identify hotspots 0 10 20 30 40 Weeks Maintainability(MT) Hotspots do not occur often in the app lifetime (max: 8), average of ~1 hotspot per app Content analysis sessions Taxonomy of Android developers activities [1] Hotspots occur independently of the type of developer’s activities 2,112 commits sampling [1] Pascarella, Geiger, Palomba, Di Nucci, Malavolta, Bacchelli. Self-Reported Activities of Android Developers. MOBILESoft 2018 3,374 Counts
  • 15. VRIJE UNIVERSITEIT AMSTERDAM Conclusions VRIJE UNIVERSITEIT AMSTERDAM 3 Why apps maintainability is important High expectations Continous feedback Frequent updates Continuous maintenance VRIJE UNIVERSITEIT AMSTERDAM Most recurrent maintainability issues (RQ1) 8 020406080100 MT US UC UI MC DP Type of maintainability issue Density M aintainability (TO TAL) Unit size Unit com plexity Unit interfacing M odule coupling Code duplication Density of issues #issues at commit c NKLOC of the app after c Average of 18 issues every 1k LOCs DUPLICATION and UNIT SIZE are the most recurring issues in Android apps Is DUPLICATION really an issue in Android? VRIJE UNIVERSITEIT AMSTERDAM Evolution trends by maintainability issue type (RQ2) 12 DP MC UI UC US MT I SI IP PI D SD DP PD H V A C 10 20 30 40 Maintainability Unit size Unit complexity Unit interfacing Module coupling Code duplication Growth Reduction Mixed Constant Increasing plateau Hill Mainly a growth in time • with recurrent plateau Are developers resolving unit interfacing and duplication issues? Maintainability issues rarely decrease! VRIJE UNIVERSITEIT AMSTERDAM Developers’ activities (RQ3) 14 0 10 20 30 40 Weeks Maintainability(MT) 0 10 20 30 40 Weeks Maintainability(MT) App time series Identify hotspots 0 10 20 30 40 Weeks Maintainability(MT) Hotspots do not occur often in the app lifetime (max: 8), average of >1 hotspot per app Content analysis sessions Taxonomy of Android developers activities [1] Hotspots occur independently of the type of developer’s activities 2,112 commits sampling [1] Pascarella, Geiger, Palomba, Di Nucci, Malavolta, Bacchelli. Self-Reported Activities of Android Developers. MOBILESoft 2018 Replication package https://github.com/S2-group/ICSME2018ReplicationPackage
  • 17. VRIJE UNIVERSITEIT AMSTERDAM Demographics 17 10 20 50 100 200 500 1000 2000 Number of commits per app 1 2 5 10 20 50 100 200 Number of commits per snapshot 1 2 5 10 20 50 100 Number of unique contributors per app 10 20 50 100 200 Number of snapshots per app 2008 2009 2011 2012 2013 2014 2015 2016 Development start date per app
  • 19. VRIJE UNIVERSITEIT AMSTERDAM SAT processing time and resources 19 Average execution time = 8.73s per snapshot Total processing time = ~12 days LOCs processed = ~800 million Checked-out resources = ~7 terabytes