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

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

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
 
TechDays 2013 Developer Keynote
TechDays 2013 Developer KeynoteTechDays 2013 Developer Keynote
Relevance, Benefits, and Problems of Software Modelling and Model-Driven Tech...
Relevance, Benefits, and Problems of Software Modelling and Model-Driven Tech...Relevance, Benefits, and Problems of Software Modelling and Model-Driven Tech...
Relevance, Benefits, and Problems of Software Modelling and Model-Driven Tech...
Marco Torchiano
 
Android-manifest extraction and labeling method for malware compilation and d...
Android-manifest extraction and labeling method for malware compilation and d...Android-manifest extraction and labeling method for malware compilation and d...
Android-manifest extraction and labeling method for malware compilation and d...
IJECEIAES
 
Intelligence on the Intractable Problem of Software Security
Intelligence on the Intractable Problem of Software SecurityIntelligence on the Intractable Problem of Software Security
Intelligence on the Intractable Problem of Software SecurityTyler Shields
 
The state-of-the-art in Mobile apps
The state-of-the-art in Mobile appsThe state-of-the-art in Mobile apps
The state-of-the-art in Mobile apps
Pranav Kadam
 
IRJET- Approaching Highlights and Security issues in Software Engineering...
IRJET-  	  Approaching Highlights and Security issues in Software Engineering...IRJET-  	  Approaching Highlights and Security issues in Software Engineering...
IRJET- Approaching Highlights and Security issues in Software Engineering...
IRJET Journal
 
VisionMobile presentation @ Campus Party 2013, London
VisionMobile presentation @ Campus Party 2013, LondonVisionMobile presentation @ Campus Party 2013, London
VisionMobile presentation @ Campus Party 2013, London
SlashData
 
Thorsignia - Custom software development services in india
Thorsignia - Custom software development services in indiaThorsignia - Custom software development services in india
Thorsignia - Custom software development services in india
charan Teja
 
Leveraging Vulnerability Management Beyond DPR (Discovery - Prioritization - ...
Leveraging Vulnerability Management Beyond DPR (Discovery - Prioritization - ...Leveraging Vulnerability Management Beyond DPR (Discovery - Prioritization - ...
Leveraging Vulnerability Management Beyond DPR (Discovery - Prioritization - ...
DevOps Indonesia
 
Technology and Agriculture based android application
Technology and Agriculture based android applicationTechnology and Agriculture based android application
Technology and Agriculture based android application
IRJET Journal
 
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...
ijcsit
 
Railway Safety Protection with Android Mobile Application for 5G New Radio Ne...
Railway Safety Protection with Android Mobile Application for 5G New Radio Ne...Railway Safety Protection with Android Mobile Application for 5G New Radio Ne...
Railway Safety Protection with Android Mobile Application for 5G New Radio Ne...
AIRCC Publishing Corporation
 
A Control Mechanism of Multiple Visualization Applications on SAGE-enabled Ti...
A Control Mechanism of Multiple Visualization Applications on SAGE-enabled Ti...A Control Mechanism of Multiple Visualization Applications on SAGE-enabled Ti...
A Control Mechanism of Multiple Visualization Applications on SAGE-enabled Ti...
由来 藤原
 
Software Engineering - Basics
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - Basics
Purvik Rana
 
Mobile Testing in the Cloud
Mobile Testing in the CloudMobile Testing in the Cloud
Mobile Testing in the Cloud
Keynote Mobile Testing
 
Radware - When It Comes to ADCs, Perception is Not Reality
Radware - When It Comes to ADCs, Perception is Not RealityRadware - When It Comes to ADCs, Perception is Not Reality
Radware - When It Comes to ADCs, Perception is Not Reality
Aruj Thirawat
 
When it comes to ADCs, Perception is not Reality - Radware
When it comes to ADCs, Perception is not Reality - RadwareWhen it comes to ADCs, Perception is not Reality - Radware
When it comes to ADCs, Perception is not Reality - Radware
aliciasyc
 
Large-Scale Empirical Studies of Mobile Apps
Large-Scale Empirical Studies of Mobile AppsLarge-Scale Empirical Studies of Mobile Apps
Large-Scale Empirical Studies of Mobile Apps
SAIL_QU
 

Similar to How Maintainability Issues of Android Apps Evolve [ICSME 2018] (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...
 
TechDays 2013 Developer Keynote
TechDays 2013 Developer KeynoteTechDays 2013 Developer Keynote
TechDays 2013 Developer Keynote
 
Relevance, Benefits, and Problems of Software Modelling and Model-Driven Tech...
Relevance, Benefits, and Problems of Software Modelling and Model-Driven Tech...Relevance, Benefits, and Problems of Software Modelling and Model-Driven Tech...
Relevance, Benefits, and Problems of Software Modelling and Model-Driven Tech...
 
Android-manifest extraction and labeling method for malware compilation and d...
Android-manifest extraction and labeling method for malware compilation and d...Android-manifest extraction and labeling method for malware compilation and d...
Android-manifest extraction and labeling method for malware compilation and d...
 
Intelligence on the Intractable Problem of Software Security
Intelligence on the Intractable Problem of Software SecurityIntelligence on the Intractable Problem of Software Security
Intelligence on the Intractable Problem of Software Security
 
The state-of-the-art in Mobile apps
The state-of-the-art in Mobile appsThe state-of-the-art in Mobile apps
The state-of-the-art in Mobile apps
 
IRJET- Approaching Highlights and Security issues in Software Engineering...
IRJET-  	  Approaching Highlights and Security issues in Software Engineering...IRJET-  	  Approaching Highlights and Security issues in Software Engineering...
IRJET- Approaching Highlights and Security issues in Software Engineering...
 
VisionMobile presentation @ Campus Party 2013, London
VisionMobile presentation @ Campus Party 2013, LondonVisionMobile presentation @ Campus Party 2013, London
VisionMobile presentation @ Campus Party 2013, London
 
Thorsignia - Custom software development services in india
Thorsignia - Custom software development services in indiaThorsignia - Custom software development services in india
Thorsignia - Custom software development services in india
 
Leveraging Vulnerability Management Beyond DPR (Discovery - Prioritization - ...
Leveraging Vulnerability Management Beyond DPR (Discovery - Prioritization - ...Leveraging Vulnerability Management Beyond DPR (Discovery - Prioritization - ...
Leveraging Vulnerability Management Beyond DPR (Discovery - Prioritization - ...
 
Technology and Agriculture based android application
Technology and Agriculture based android applicationTechnology and Agriculture based android application
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...RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...
RAILWAY SAFETY PROTECTION WITH ANDROID MOBILE APPLICATION FOR 5G NEW RADIO NE...
 
Railway Safety Protection with Android Mobile Application for 5G New Radio Ne...
Railway Safety Protection with Android Mobile Application for 5G New Radio Ne...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...
A Control Mechanism of Multiple Visualization Applications on SAGE-enabled Ti...A Control Mechanism of Multiple Visualization Applications on SAGE-enabled Ti...
A Control Mechanism of Multiple Visualization Applications on SAGE-enabled Ti...
 
Mobile app
Mobile appMobile app
Mobile app
 
Software Engineering - Basics
Software Engineering - BasicsSoftware Engineering - Basics
Software Engineering - Basics
 
Mobile Testing in the Cloud
Mobile Testing in the CloudMobile Testing in the Cloud
Mobile Testing in the Cloud
 
Radware - When It Comes to ADCs, Perception is Not Reality
Radware - When It Comes to ADCs, Perception is Not RealityRadware - When It Comes to ADCs, Perception is Not Reality
Radware - When It Comes to ADCs, Perception is Not Reality
 
When it comes to ADCs, Perception is not Reality - Radware
When it comes to ADCs, Perception is not Reality - RadwareWhen it comes to ADCs, Perception is not Reality - Radware
When it comes to ADCs, Perception is not Reality - Radware
 
Large-Scale Empirical Studies of Mobile Apps
Large-Scale Empirical Studies of Mobile AppsLarge-Scale Empirical Studies of Mobile Apps
Large-Scale Empirical Studies of Mobile Apps
 

More from Ivano Malavolta

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

More from Ivano Malavolta (20)

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

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 

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