2. 2
Mobile apps are applications to run on
mobile devices (smartphones, tablets, etc).
3. Apps are different
than traditional
software
3
1 Wasserman, A. I. (2010), Software engineering issues for mobile application development, in ‘FSE/SDP workshop on
Future of software engineering research’, FoSER ’10.
2 Syer, M. D., Adams, B., Zou, Y. and Hassan, A. E. (2011), Exploring the development of micro-apps: A case study on the
blackberry and android platforms, in ‘Proceedings of the 2011 IEEE 11th International Working Conference on Source Code
Analysis and Manipulation’, SCAM ’11, IEEE Computer Society, Washington, DC, USA, pp. 55–64.
3 Gasimov, A., Tan, C.-H., Phang, C. W. and Sutanto, J. (2010), Visiting mobile application development: What, how and
where, in ‘Proceedings of the International Conference on Mobile Business and Global Mobility Roundtable (ICMB-GMR)’,
pp. 74–81.
4 Minelli, R. and Lanza, M. (2013), Software analytics for mobile applications - insights & lessons learned, in ‘Proceedings of
CSMR 2013 (17th European Conference on Software Maintenance and Reengineering)’, IEEE CS Press, pp. 144–153.
• Apps are comparably small (several KLOC), usually developed by
one or two developers only.1
• Development practices of mobile apps differs from other type of
software.2
• Apps have specific software challenges: security, limited hardware
resources, and scalability.3
• Apps differ from traditional software.4
4. Billionaire market with thousands of
software developers
4
Billionaire market: The app market is estimated to
generate revenues of $74 US billion in 2017.1
1Columbus, L. (2013), ‘Roundup of mobile apps and app store forecasts, 2013’,
http://www:forbes:com/sites/louiscolumbus/2013/06/09/roundup-of-mobile-apps-app-store-forecasts-2013/.
2ABI (2012), ‘In-app purchases to outpace pay-per-download revenues in 2012’, http://www:abiresearch:com/press/in-app-
purchases-tooutpace-pay-per-download-reven.
3O’Neill, N. (2010), ‘10 surprising app platform facts [infographic]’, http://www:allfacebook:com/app-platform-facts-2010-09.
Thousands of app developers:
50,000 app developers only two years
after the first app store opened.3
Billion of apps downloaded: It is estimated that 50
billion apps (across all platforms) were downloaded in
2012. 2
5. Accelerated Rate of Growth
in the Number of Apps
5
Apple’s App store 500 apps (Jul-2008)
to 800K (Mid 2013).
Google Play Store 2K apps (Mar-2009)
to 800K apps (Mid 2013).
Windows Phone App Store 145K apps
(Mid 2013).
BlackBerry App World 120K apps
(Mid 2013).
Amazon App store 3K apps (Mar-2011)
to 75K (Mid 2013).
Apple App Store
Google Play App Store
6. Free apps dominate
the app market
6
~75% apps are free to download apps1
~90% of downloaded apps are free apps2
1AppBrain (2013), ‘Comparison of free and paid android apps’, http://www:appbrain:com/stats/free-and-paid-android-
applications.
2 Pettey, C. and van der Meulen, R. (2012), ‘Gartner says free apps will account for nearly 90 percent of total mobile app
store downloads in 2012’, http://www:gartner:com/it/page:jsp?id=2153215.
7. App developers are competing against other
hundred of thousands of free apps
7
Thousands of free apps An app is alone Unknown future
App developers
are worried
Retire the app
A damaged app
A champion app
8. Research statement
8
New software engineering challenges have emerged in the current context of
mobile apps. App developers, in order to compete profitably in a massive
market of apps, should take into consideration traditional aspects such as
code reuse and novelty, and new aspects such as the approval of the app
users, and the advertisement libraries embedded in their apps. In depth
empirical studies are needed in order to shape and direct future software
engineering research for mobile apps.
9. The Android platform dominates
the worldwide market
Smartphones running
Android OS has a
market share of more
than 68% of the market
around the world.
9
68%
17%
5%
3%
7%
Android
iOS
BlackBerry
Windows
Others
1AP (2012), ‘Android market share q3 2012: Google’s still beating apple, but will the iphone 5 change that?’,
http://www:huffingtonpost:com/2012/09/18/androidmarket-share-q3-2012 n 1893292:html.
12. 12
SOFTWARE REUSE
Exponential Growth in the Number of Apps
in the Google Play app store
Time
0
100000
200000
300000
400000
500000
600000
700000
800000
Mar-09
May-09
Jul-09
Sep-09
Nov-09
Jan-10
Mar-10
May-10
Jul-10
Sep-10
Nov-10
Jan-11
Mar-11
May-11
Jul-11
Sep-11
Nov-11
Jan-12
Mar-12
May-12
Jul-12
Sep-12
800K
700K
600K
500K
400K
300K
200K
100K
0
Numberofapps
13. Comparing Two Classes
13
Davies, J.; German, D.M.; Godfrey, M.W.;
Hindle, A.; , “Software bertillonage: finding
the provenance of an entity,” - MSR ’11
Source Code
CCFinder
NICAD
SimScan
Bytecode Bertillonage
Signatures
14. 14
4,323 app
501 apps
554 apps
1,034 apps
1,115 apps
1,119 apps
Apps Collected in the
Google Play app store
15. 15
Total Classes: 59,208 52,425 88,156 250,063 84,205
3000
2500
2000
1500
1000
500
0
Range of Android Apps Size
Android
Apps size
dispersion
Numberofclasses
Category
An App
16. How Much Diversity is There
in a Category?
16
OneCategory
App 1 App 2 App 3
10=
B , = 4
Reused Classes = 60%
A , C, D
BA
C D
AA
D
B
C
B Classes
{ }
Unique Classes = 40%
18. Global Reuse of Classes
18
OneCategory
App 1 App 2 App 3
global (App 1) =
A B
C D
A E
F
A D
E F G
5 3 4
3
5
= 0.60
global (App 2) = 3
3
= 1.00
global (App 3) =
3
4
= 0.75
19. High Global Reuse
19
1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0
Global Reuse
PercentageofAppsforeachCategory
100
80
60
40
20
0
20. High Global Reuse
20
PercentageofAppsforeachCategory 100
80
60
40
20
0
Between 50%-80% of
apps have at least 30%
of classes in common
Between 5%-19% of apps
have almost identical set
of classes in common
Mockus, A.; , “Large-Scale Code Reuse in Open Source Software,” Emerging Trends in FLOSS Research
and Development, 2007. FLOSS ’07. First International Workshop on , vol., no., pp.7, 20-26 May 2007.
1.0 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0
Global Reuse
21. Pair Wise Reuse
21
OneCategory
App 1 App 2
local (App 1, App 2)
A B
C D
A E
F
2
5
= = 0.40
local (App 2, App 1) 2
3
= = 0.67
local (App 3, App 2) 2
4
= = 0.50
App 3
A D
F GE
25. 25
Software reuse
has highly
contributed to
accelerate the
production of
Android apps.
Software reuse
in mobile apps
App rating Ad maintenance
LARGE-SCALE EMPIRICAL
STUDIES OF MOBILE APPS
26. Large dataset of apps
The Google Play was crawled along the 2011 obtaining:
• 500K app versions
• 200K apps
The data obtained from this crawling:
• The app files (APK files).
• Metadata: Category, number of raters, the average-rating, binary size (in
bytes), version number, company name, company website, and presence of
marketing material like promotional videos.
26
27. 27
Software reuse
has highly
contributed to
accelerate the
production of
Android apps.
Software reuse
in mobile apps
App rating Ad maintenance
LARGE-SCALE EMPIRICAL
STUDIES OF MOBILE APPS
28. The rating of an app shows the app
users’ perceived quality of an app
28
29. Congratulations,
it only took you
700,000 apps!!
I found the
app!!!
The rating of an app
helps it to be found
29
At least 1000 results
32. Many apps contain biased ratings because
of a low number of versions and/or raters
32
1 2 3 4 5
Rating
Density Plot of the ratings of all apps with at least 10 raters
Density
00.10.20.30.40.50.60.7
1 2 3 4 5
Rating
Density Plot of the ratings of all apps
Density
00.51.01.5
33. • App-user could download an app
with high average-rating, even though
the quality is very bad.
• App-developers should be careful
about their first release. Otherwise,
the app can start with a low rating,
and due to the snowball effect,
continue to be a poorly
rated/downloaded app.
33
Unhappy app-users with high average rated apps.
App-developers depend so much on their first app version.
34. 34
The global-rating is resilient to fluctuations after
a large number of app-users have rated an app
1e+00 1e+02 1e+04 1e+06
Initial #raters
-2024
Global-ratingincrease
Global-rating increase
-1.5 -1.0 -0.5 0 0.5 1.0 1.5
Version-ratingincrease
-4-202
35. 35
App-store-owners should display both the global- and the
version-rating. Then app-users will have access to the best
quality apps.
Version n
Rated by: 1,000,000 app-users
Global-rating: 3.0
Global-rating= ∑ ÷ ∑ = 3.0
∑ = ∑ x global-rating = 3,000,000
New Awful version: 1,000 by 1,000
Global-rating = (3,000,000+1,000) ÷(1,000,000+1,000) =
2.998~3.0
36. 36
The global-rating does not incentive to
app developers to release a better app.
Version n
Rated by: 1,000,000 app-users
Global-rating: 3.0
Global-rating= ∑ ÷ ∑ = 3.0
∑ = ∑ x global-rating = 3,000,000
New Awesome version:5,000 by1,000
Global-rating = (3,000,000+5,000) ÷(1,000,000+1,000) =
3.001~3.0
37. 37
Most apps can recover from a drop in rating
within the next few versions.
39. Size, OO Design and Reuse metrics are
most closely related with version-rating
increases
39
Apps with large number of classes (more functionality)
tend to increase their rating.
App-developers can increase the version-rating of their
app by being careful with adding too much home-brewed
code (as opposed to reusing existing libraries).
However, app-developers
should be careful exposing
too much functionality in
their app (public methods).
41. 41
Software reuse
has highly
contributed to
accelerate the
production of
Android apps.
Software reuse
in mobile apps
App rating Ad maintenance
The present rating
system does not
motivate
app-developers to
improve the quality of
their apps.
LARGE-SCALE EMPIRICAL
STUDIES OF MOBILE APPS
42. 42
Software reuse
has highly
contributed to
accelerate the
production of
Android apps.
Software reuse
in mobile apps
App rating Ad maintenance
LARGE-SCALE EMPIRICAL
STUDIES OF MOBILE APPS
The present rating
system does not
motivate
app-developers to
improve the quality of
their apps.
43. Free apps dominate
the app market
43
~90% of downloaded apps are free-to-download
apps2
1AppBrain (2013), ‘Comparison of free and paid android apps’, http://www:appbrain:com/stats/free-and-paid-android-
applications.
2 Pettey, C. and van der Meulen, R. (2012), ‘Gartner says free apps will account for nearly 90 percent of total mobile app
store downloads in 2012’, http://www:gartner:com/it/page:jsp?id=2153215.
~75% apps are free to download1
47. Low Number of Ads available
(Low Fill rate)
Fill rate is the percentage of ads received from the
advertising company relative to the number of requests
made.
47
App developers can integrate ad libraries from
different advertising companies to increase the
fill rate of their apps.
In the first half of 2011 the average fill rate for the
worldwide top 40 ad networks was less than
18%1. Furthermore, ad networks that tend to pay
more tend to have low fill rates, while ad networks
with the highest fill rates tend to pay less2.
1 Candeias, H. (2011), ‘Smaato releases q2 2011 mobile metrics report’, http://www:smaato:com/metricsq22011-2/.
2 Opera (2013), ‘The state of mobile advertising, q2 2012’, http://business:opera:com/sma/2012/q2/.
52. Ad-libraries are updated constantly
52
Corporate moves
Integrate new features (e.g., ad video)
Add compatibility with other ad libraries
Fix bugs (memory, ads no displayed, etc.)
Manage personal information
53. SW Engineering Challenges
• Balance between app and ad
environment.
Ads are annoying: 68% of consumers find
online ads “annoying” and “distracting”.1
53
• Increase revenue.
App-developers evaluate which ad-library
generates the highest revenue.
• Time between publication.
Ad-library providers are updating
constantly their ad-libraries.
1http://www.adobe.com/aboutadobe/pressroom/pdfs/Adobe_State_of_Online_Advertising_Study.pdf
54. Ad-maintenance
Ad-maintenance are the different tasks of software
maintenance that app-developers have to perform
on the embedded ad libraries in an app, instead of
the features of the app.
54
• Examples of such changes are correcting problems with
the ad libraries, modify, add, remove or update an ad
library in an app.
• The final goal of a proper ad maintenance is
to ensure that the ad libraries do not impact
negatively on the app user experience,
while app developers generate the
maximum revenue from the ads in their
apps.
55. Identifying ad-libraries
1. Search the [aA][dD] regular expression across the
apps’ classes
com.packageAdlibraryName.AdclassName
2. Web search of the packageAdlibraryName
55
72 ad-libraries!!!
56. Ad-libraries play a prominent
role in the free apps
56
49%
51%
No ads
Ad-supported apps
57. The percentage of ad supported apps
varies across the different app categories
57
Categories
Photography
Games
Entertainment
Comics
Personalization
Media&Video
News&Magazines
Libraries&Demo
Books&references
Sports
Health&Fitness
Weather
Tools
Education
Lifestyle
Music&Audio
Social
Transportation
Productivity
Travel&Local
Communication
Shopping
Finance
Medical
Business
90
80
70
60
50
40
30
20
10
0
Percentageofad-supportedappspercategory
78.1% 77.8%
64.3% 63.8%
Top categories with
ad-supported apps
26.2%24.5%
18.9% 14.3%
Top categories with less
ad-supported apps
58. Few different ad libraries
dominate the ad library market
58
Ad-libraries
60
50
40
30
20
10
0
Percentageofad-supportedapps
59. • Revenue
• Premium ad-networks
• Regional vs global
• Trust
• Type ad-content
59
Choosing an
ad-library
60. The ad-network serving model
dominates drastically the ad market
• 61 out of the 72 (84.72%) of the ad libraries identified work as ad
networks, 6 (8.33%) are ad-mediator libraries, and 5 (6.94%) are ad
exchanges libraries.
60
Ad-serving model
Percentageofad-supportedapps
88%
11.6% 9.9%
61. Ad supported apps can contain a
large number of ad libraries
61
I think I had
so many
ad-libraries!!!
Number of ad-libraries embedded
Even 28 ad-libraries in an app!!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
90K
80K
70K
60K
50K
40K
30K
20K
10K
0
Numberofapps
17.57%
(21,256)
65.11%
(78,775)
7.09%
(8,581)
3.36%
(4,068)
0.59%
(709)
0.06%
(78)
0.06%
(73)
1.05%
(1,265)
0.50%
(608)
0.20%
(240)
63. App developers are frequently
updating the ad libraries in their apps
Ad-libraries were:
• Updated 65.25%
• Added 43.69%
• Removed 24.64%
63
64. 942 apps out of the 6,850 (13.75%)
only updated their ad-libraries
64
How much a calculator can change?
942 apps out of 6,850 were resubmitted to
the Google Play App Store with only
changes in their ad-libraries APIs. The rest
of the APIs were not modified.
65. 65
To use only one ad-network results in the
least number of ad changes, followed by the
ad-exchanges serving model
66. The number of ad libraries
does not affect the rating
66
Number of ad-libraries
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28
5
4
3
2
1
Version-rating
67. The behaviour of an ad-library
affects the rating of an app
67
Ad-libraries
Version-rating
Good game, bad ads. I was loving
the game until I noticed it put a new
shortcut called ”Apps” on my
launcher. Sorry, but if your idea of
advertising is putting sh*t in launcher
pages or notifications then I’m not
interested.
68. 68
Software reuse
has highly
contributed to
accelerate the
production of
Android apps.
Software reuse
in mobile apps
App rating
Ad maintenance
helps app developers
to keep on generating
revenue, and
healthy ratings.
Ad maintenance
LARGE-SCALE EMPIRICAL
STUDIES OF MOBILE APPS
The present rating
system does not
motivate
app-developers to
improve the quality of
their apps.
73. 73
Bertillonage Signature
Decompiled Class
Package p.s
public class ClassName extends j.l.E implements x.y.Z {
public void C(){
//Class‘ constructor
}
private int a(java.lang.String s) throws pack.subPackage.K{
/*[compiled byte code]*/
}
}
Bertillonage Signature
p.s.
public void C()
private int a(String) throws K
public class ClassName extends E implements Z
sClass =
sM1 =
sM2 =
Bertillonage class signature = <sClass,<sM1,sM2>>