SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a How Maintainability Issues of Android Apps Evolve Over Time

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
 
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 appsPranav 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, LondonSlashData
 
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 indiacharan 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 applicationIRJET 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 - BasicsPurvik Rana
 
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 RealityAruj 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 - Radwarealiciasyc
 
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 AppsSAIL_QU
 

Similar a How Maintainability Issues of Android Apps Evolve Over Time (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
 

Más de 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 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 LanguageIvano Malavolta
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languagesIvano Malavolta
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineeringIvano 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’ perceptionIvano Malavolta
 
[13 - B] Experiment reporting
[13 - B] Experiment reporting[13 - B] Experiment reporting
[13 - B] Experiment reportingIvano Malavolta
 
[13 - A] Experiment validity
[13 - A] Experiment validity[13 - A] Experiment validity
[13 - A] Experiment validityIvano 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 sizeIvano Malavolta
 
[07-B] Statistical hypothesis testing
[07-B] Statistical hypothesis testing[07-B] Statistical hypothesis testing
[07-B] Statistical hypothesis testingIvano 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 explorationIvano Malavolta
 

Más de 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
 

Último

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Último (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

How Maintainability Issues of Android Apps Evolve Over Time

  • 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