Large-Scale Empirical Studies of Mobile Apps

74
LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS Israel Jesus Mojica Ruiz

Transcript of Large-Scale Empirical Studies of Mobile Apps

Page 1: Large-Scale Empirical Studies of Mobile Apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Israel Jesus Mojica Ruiz

2

Mobile apps are applications to run on mobile devices (smartphones tablets etc)

Apps are different than traditional

software

3

1 Wasserman A I (2010) Software engineering issues for mobile application development in lsquoFSESDP workshop on Future of software engineering researchrsquo FoSER rsquo102 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 lsquoProceedings of the 2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulationrsquo SCAM rsquo11 IEEE Computer Society Washington DC USA pp 55ndash643 Gasimov A Tan C-H Phang C W and Sutanto J (2010) Visiting mobile application development What how and where in lsquoProceedings of the International Conference on Mobile Business and Global Mobility Roundtable (ICMB-GMR)rsquo pp 74ndash814 Minelli R and Lanza M (2013) Software analytics for mobile applications - insights amp lessons learned in lsquoProceedings of CSMR 2013 (17th European Conference on Software Maintenance and Reengineering)rsquo IEEE CS Press pp 144ndash153

bull Apps are comparably small (several KLOC) usually developed by one or two developers only1

bull Development practices of mobile apps differs from other type of software2

bull Apps have specific software challenges security limited hardware resources and scalability3

bull Apps differ from traditional software4

Billionaire market with thousands of software developers

4

Billionaire market The app market is estimated to generate revenues of $74 US billion in 20171

1Columbus L (2013) lsquoRoundup of mobile apps and app store forecasts 2013rsquo httpwwwforbescomsiteslouiscolumbus20130609roundup-of-mobile-apps-app-store-forecasts-2013 2ABI (2012) lsquoIn-app purchases to outpace pay-per-download revenues in 2012rsquo httpwwwabiresearchcompressin-app-purchases-tooutpace-pay-per-download-reven3OrsquoNeill N (2010) lsquo10 surprising app platform facts [infographic]rsquo httpwwwallfacebookcomapp-platform-facts-2010-09

Thousands of app developers 50000 app developers only two years after the first app store opened3

Billion of apps downloaded It is estimated that 50 billion apps (across all platforms) were downloaded in 2012 2

Accelerated Rate of Growthin the Number of Apps

5

Applersquos 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

Free apps dominatethe app market

6

~75 apps are free to download apps1

~90 of downloaded apps are free apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

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

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

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

4 7

Android

iOSBlackBerry

WindowsOthers

1AP (2012) lsquoAndroid market share q3 2012 Googlersquos still beating apple but will the iphone 5 change thatrsquo httpwwwhuffingtonpostcom20120918androidmarket-share-q3-2012 n 1893292html

10

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

11

12

SOFTWARE REUSEExponential Growth in the Number of Apps

in the Google Play app store

TimeMar-

09

May-09

Jul-0

9

Sep-09

Nov-09

Jan-1

0

Mar-10

May-10

Jul-1

0

Sep-10

Nov-10

Jan-1

1

Mar-11

May-11

Jul-1

1

Sep-11

Nov-11

Jan-1

2

Mar-12

May-12

Jul-1

2

Sep-12

0

100000

200000

300000

400000

500000

600000

700000

800000800K

700K

600K

500K

400K

300K

200K

100K

0

Num

ber o

f app

s

Comparing Two Classes

13

Davies J German DM Godfrey MW Hindle A ldquoSoftware bertillonage finding the provenance of an entityrdquo - MSR rsquo11

Source CodeCCFinderNICADSimScan

Bytecode Bertillonage Signatures

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 2: Large-Scale Empirical Studies of Mobile Apps

2

Mobile apps are applications to run on mobile devices (smartphones tablets etc)

Apps are different than traditional

software

3

1 Wasserman A I (2010) Software engineering issues for mobile application development in lsquoFSESDP workshop on Future of software engineering researchrsquo FoSER rsquo102 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 lsquoProceedings of the 2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulationrsquo SCAM rsquo11 IEEE Computer Society Washington DC USA pp 55ndash643 Gasimov A Tan C-H Phang C W and Sutanto J (2010) Visiting mobile application development What how and where in lsquoProceedings of the International Conference on Mobile Business and Global Mobility Roundtable (ICMB-GMR)rsquo pp 74ndash814 Minelli R and Lanza M (2013) Software analytics for mobile applications - insights amp lessons learned in lsquoProceedings of CSMR 2013 (17th European Conference on Software Maintenance and Reengineering)rsquo IEEE CS Press pp 144ndash153

bull Apps are comparably small (several KLOC) usually developed by one or two developers only1

bull Development practices of mobile apps differs from other type of software2

bull Apps have specific software challenges security limited hardware resources and scalability3

bull Apps differ from traditional software4

Billionaire market with thousands of software developers

4

Billionaire market The app market is estimated to generate revenues of $74 US billion in 20171

1Columbus L (2013) lsquoRoundup of mobile apps and app store forecasts 2013rsquo httpwwwforbescomsiteslouiscolumbus20130609roundup-of-mobile-apps-app-store-forecasts-2013 2ABI (2012) lsquoIn-app purchases to outpace pay-per-download revenues in 2012rsquo httpwwwabiresearchcompressin-app-purchases-tooutpace-pay-per-download-reven3OrsquoNeill N (2010) lsquo10 surprising app platform facts [infographic]rsquo httpwwwallfacebookcomapp-platform-facts-2010-09

Thousands of app developers 50000 app developers only two years after the first app store opened3

Billion of apps downloaded It is estimated that 50 billion apps (across all platforms) were downloaded in 2012 2

Accelerated Rate of Growthin the Number of Apps

5

Applersquos 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

Free apps dominatethe app market

6

~75 apps are free to download apps1

~90 of downloaded apps are free apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

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

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

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

4 7

Android

iOSBlackBerry

WindowsOthers

1AP (2012) lsquoAndroid market share q3 2012 Googlersquos still beating apple but will the iphone 5 change thatrsquo httpwwwhuffingtonpostcom20120918androidmarket-share-q3-2012 n 1893292html

10

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

11

12

SOFTWARE REUSEExponential Growth in the Number of Apps

in the Google Play app store

TimeMar-

09

May-09

Jul-0

9

Sep-09

Nov-09

Jan-1

0

Mar-10

May-10

Jul-1

0

Sep-10

Nov-10

Jan-1

1

Mar-11

May-11

Jul-1

1

Sep-11

Nov-11

Jan-1

2

Mar-12

May-12

Jul-1

2

Sep-12

0

100000

200000

300000

400000

500000

600000

700000

800000800K

700K

600K

500K

400K

300K

200K

100K

0

Num

ber o

f app

s

Comparing Two Classes

13

Davies J German DM Godfrey MW Hindle A ldquoSoftware bertillonage finding the provenance of an entityrdquo - MSR rsquo11

Source CodeCCFinderNICADSimScan

Bytecode Bertillonage Signatures

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 3: Large-Scale Empirical Studies of Mobile Apps

Apps are different than traditional

software

3

1 Wasserman A I (2010) Software engineering issues for mobile application development in lsquoFSESDP workshop on Future of software engineering researchrsquo FoSER rsquo102 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 lsquoProceedings of the 2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulationrsquo SCAM rsquo11 IEEE Computer Society Washington DC USA pp 55ndash643 Gasimov A Tan C-H Phang C W and Sutanto J (2010) Visiting mobile application development What how and where in lsquoProceedings of the International Conference on Mobile Business and Global Mobility Roundtable (ICMB-GMR)rsquo pp 74ndash814 Minelli R and Lanza M (2013) Software analytics for mobile applications - insights amp lessons learned in lsquoProceedings of CSMR 2013 (17th European Conference on Software Maintenance and Reengineering)rsquo IEEE CS Press pp 144ndash153

bull Apps are comparably small (several KLOC) usually developed by one or two developers only1

bull Development practices of mobile apps differs from other type of software2

bull Apps have specific software challenges security limited hardware resources and scalability3

bull Apps differ from traditional software4

Billionaire market with thousands of software developers

4

Billionaire market The app market is estimated to generate revenues of $74 US billion in 20171

1Columbus L (2013) lsquoRoundup of mobile apps and app store forecasts 2013rsquo httpwwwforbescomsiteslouiscolumbus20130609roundup-of-mobile-apps-app-store-forecasts-2013 2ABI (2012) lsquoIn-app purchases to outpace pay-per-download revenues in 2012rsquo httpwwwabiresearchcompressin-app-purchases-tooutpace-pay-per-download-reven3OrsquoNeill N (2010) lsquo10 surprising app platform facts [infographic]rsquo httpwwwallfacebookcomapp-platform-facts-2010-09

Thousands of app developers 50000 app developers only two years after the first app store opened3

Billion of apps downloaded It is estimated that 50 billion apps (across all platforms) were downloaded in 2012 2

Accelerated Rate of Growthin the Number of Apps

5

Applersquos 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

Free apps dominatethe app market

6

~75 apps are free to download apps1

~90 of downloaded apps are free apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

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

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

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

4 7

Android

iOSBlackBerry

WindowsOthers

1AP (2012) lsquoAndroid market share q3 2012 Googlersquos still beating apple but will the iphone 5 change thatrsquo httpwwwhuffingtonpostcom20120918androidmarket-share-q3-2012 n 1893292html

10

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

11

12

SOFTWARE REUSEExponential Growth in the Number of Apps

in the Google Play app store

TimeMar-

09

May-09

Jul-0

9

Sep-09

Nov-09

Jan-1

0

Mar-10

May-10

Jul-1

0

Sep-10

Nov-10

Jan-1

1

Mar-11

May-11

Jul-1

1

Sep-11

Nov-11

Jan-1

2

Mar-12

May-12

Jul-1

2

Sep-12

0

100000

200000

300000

400000

500000

600000

700000

800000800K

700K

600K

500K

400K

300K

200K

100K

0

Num

ber o

f app

s

Comparing Two Classes

13

Davies J German DM Godfrey MW Hindle A ldquoSoftware bertillonage finding the provenance of an entityrdquo - MSR rsquo11

Source CodeCCFinderNICADSimScan

Bytecode Bertillonage Signatures

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 4: Large-Scale Empirical Studies of Mobile Apps

Billionaire market with thousands of software developers

4

Billionaire market The app market is estimated to generate revenues of $74 US billion in 20171

1Columbus L (2013) lsquoRoundup of mobile apps and app store forecasts 2013rsquo httpwwwforbescomsiteslouiscolumbus20130609roundup-of-mobile-apps-app-store-forecasts-2013 2ABI (2012) lsquoIn-app purchases to outpace pay-per-download revenues in 2012rsquo httpwwwabiresearchcompressin-app-purchases-tooutpace-pay-per-download-reven3OrsquoNeill N (2010) lsquo10 surprising app platform facts [infographic]rsquo httpwwwallfacebookcomapp-platform-facts-2010-09

Thousands of app developers 50000 app developers only two years after the first app store opened3

Billion of apps downloaded It is estimated that 50 billion apps (across all platforms) were downloaded in 2012 2

Accelerated Rate of Growthin the Number of Apps

5

Applersquos 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

Free apps dominatethe app market

6

~75 apps are free to download apps1

~90 of downloaded apps are free apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

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

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

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

4 7

Android

iOSBlackBerry

WindowsOthers

1AP (2012) lsquoAndroid market share q3 2012 Googlersquos still beating apple but will the iphone 5 change thatrsquo httpwwwhuffingtonpostcom20120918androidmarket-share-q3-2012 n 1893292html

10

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

11

12

SOFTWARE REUSEExponential Growth in the Number of Apps

in the Google Play app store

TimeMar-

09

May-09

Jul-0

9

Sep-09

Nov-09

Jan-1

0

Mar-10

May-10

Jul-1

0

Sep-10

Nov-10

Jan-1

1

Mar-11

May-11

Jul-1

1

Sep-11

Nov-11

Jan-1

2

Mar-12

May-12

Jul-1

2

Sep-12

0

100000

200000

300000

400000

500000

600000

700000

800000800K

700K

600K

500K

400K

300K

200K

100K

0

Num

ber o

f app

s

Comparing Two Classes

13

Davies J German DM Godfrey MW Hindle A ldquoSoftware bertillonage finding the provenance of an entityrdquo - MSR rsquo11

Source CodeCCFinderNICADSimScan

Bytecode Bertillonage Signatures

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 5: Large-Scale Empirical Studies of Mobile Apps

Accelerated Rate of Growthin the Number of Apps

5

Applersquos 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

Free apps dominatethe app market

6

~75 apps are free to download apps1

~90 of downloaded apps are free apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

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

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

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

4 7

Android

iOSBlackBerry

WindowsOthers

1AP (2012) lsquoAndroid market share q3 2012 Googlersquos still beating apple but will the iphone 5 change thatrsquo httpwwwhuffingtonpostcom20120918androidmarket-share-q3-2012 n 1893292html

10

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

11

12

SOFTWARE REUSEExponential Growth in the Number of Apps

in the Google Play app store

TimeMar-

09

May-09

Jul-0

9

Sep-09

Nov-09

Jan-1

0

Mar-10

May-10

Jul-1

0

Sep-10

Nov-10

Jan-1

1

Mar-11

May-11

Jul-1

1

Sep-11

Nov-11

Jan-1

2

Mar-12

May-12

Jul-1

2

Sep-12

0

100000

200000

300000

400000

500000

600000

700000

800000800K

700K

600K

500K

400K

300K

200K

100K

0

Num

ber o

f app

s

Comparing Two Classes

13

Davies J German DM Godfrey MW Hindle A ldquoSoftware bertillonage finding the provenance of an entityrdquo - MSR rsquo11

Source CodeCCFinderNICADSimScan

Bytecode Bertillonage Signatures

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 6: Large-Scale Empirical Studies of Mobile Apps

Free apps dominatethe app market

6

~75 apps are free to download apps1

~90 of downloaded apps are free apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

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

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

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

4 7

Android

iOSBlackBerry

WindowsOthers

1AP (2012) lsquoAndroid market share q3 2012 Googlersquos still beating apple but will the iphone 5 change thatrsquo httpwwwhuffingtonpostcom20120918androidmarket-share-q3-2012 n 1893292html

10

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

11

12

SOFTWARE REUSEExponential Growth in the Number of Apps

in the Google Play app store

TimeMar-

09

May-09

Jul-0

9

Sep-09

Nov-09

Jan-1

0

Mar-10

May-10

Jul-1

0

Sep-10

Nov-10

Jan-1

1

Mar-11

May-11

Jul-1

1

Sep-11

Nov-11

Jan-1

2

Mar-12

May-12

Jul-1

2

Sep-12

0

100000

200000

300000

400000

500000

600000

700000

800000800K

700K

600K

500K

400K

300K

200K

100K

0

Num

ber o

f app

s

Comparing Two Classes

13

Davies J German DM Godfrey MW Hindle A ldquoSoftware bertillonage finding the provenance of an entityrdquo - MSR rsquo11

Source CodeCCFinderNICADSimScan

Bytecode Bertillonage Signatures

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 7: Large-Scale Empirical Studies of Mobile Apps

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

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

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

4 7

Android

iOSBlackBerry

WindowsOthers

1AP (2012) lsquoAndroid market share q3 2012 Googlersquos still beating apple but will the iphone 5 change thatrsquo httpwwwhuffingtonpostcom20120918androidmarket-share-q3-2012 n 1893292html

10

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

11

12

SOFTWARE REUSEExponential Growth in the Number of Apps

in the Google Play app store

TimeMar-

09

May-09

Jul-0

9

Sep-09

Nov-09

Jan-1

0

Mar-10

May-10

Jul-1

0

Sep-10

Nov-10

Jan-1

1

Mar-11

May-11

Jul-1

1

Sep-11

Nov-11

Jan-1

2

Mar-12

May-12

Jul-1

2

Sep-12

0

100000

200000

300000

400000

500000

600000

700000

800000800K

700K

600K

500K

400K

300K

200K

100K

0

Num

ber o

f app

s

Comparing Two Classes

13

Davies J German DM Godfrey MW Hindle A ldquoSoftware bertillonage finding the provenance of an entityrdquo - MSR rsquo11

Source CodeCCFinderNICADSimScan

Bytecode Bertillonage Signatures

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 8: Large-Scale Empirical Studies of Mobile Apps

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

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

4 7

Android

iOSBlackBerry

WindowsOthers

1AP (2012) lsquoAndroid market share q3 2012 Googlersquos still beating apple but will the iphone 5 change thatrsquo httpwwwhuffingtonpostcom20120918androidmarket-share-q3-2012 n 1893292html

10

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

11

12

SOFTWARE REUSEExponential Growth in the Number of Apps

in the Google Play app store

TimeMar-

09

May-09

Jul-0

9

Sep-09

Nov-09

Jan-1

0

Mar-10

May-10

Jul-1

0

Sep-10

Nov-10

Jan-1

1

Mar-11

May-11

Jul-1

1

Sep-11

Nov-11

Jan-1

2

Mar-12

May-12

Jul-1

2

Sep-12

0

100000

200000

300000

400000

500000

600000

700000

800000800K

700K

600K

500K

400K

300K

200K

100K

0

Num

ber o

f app

s

Comparing Two Classes

13

Davies J German DM Godfrey MW Hindle A ldquoSoftware bertillonage finding the provenance of an entityrdquo - MSR rsquo11

Source CodeCCFinderNICADSimScan

Bytecode Bertillonage Signatures

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 9: Large-Scale Empirical Studies of Mobile Apps

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

4 7

Android

iOSBlackBerry

WindowsOthers

1AP (2012) lsquoAndroid market share q3 2012 Googlersquos still beating apple but will the iphone 5 change thatrsquo httpwwwhuffingtonpostcom20120918androidmarket-share-q3-2012 n 1893292html

10

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

11

12

SOFTWARE REUSEExponential Growth in the Number of Apps

in the Google Play app store

TimeMar-

09

May-09

Jul-0

9

Sep-09

Nov-09

Jan-1

0

Mar-10

May-10

Jul-1

0

Sep-10

Nov-10

Jan-1

1

Mar-11

May-11

Jul-1

1

Sep-11

Nov-11

Jan-1

2

Mar-12

May-12

Jul-1

2

Sep-12

0

100000

200000

300000

400000

500000

600000

700000

800000800K

700K

600K

500K

400K

300K

200K

100K

0

Num

ber o

f app

s

Comparing Two Classes

13

Davies J German DM Godfrey MW Hindle A ldquoSoftware bertillonage finding the provenance of an entityrdquo - MSR rsquo11

Source CodeCCFinderNICADSimScan

Bytecode Bertillonage Signatures

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 10: Large-Scale Empirical Studies of Mobile Apps

10

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

11

12

SOFTWARE REUSEExponential Growth in the Number of Apps

in the Google Play app store

TimeMar-

09

May-09

Jul-0

9

Sep-09

Nov-09

Jan-1

0

Mar-10

May-10

Jul-1

0

Sep-10

Nov-10

Jan-1

1

Mar-11

May-11

Jul-1

1

Sep-11

Nov-11

Jan-1

2

Mar-12

May-12

Jul-1

2

Sep-12

0

100000

200000

300000

400000

500000

600000

700000

800000800K

700K

600K

500K

400K

300K

200K

100K

0

Num

ber o

f app

s

Comparing Two Classes

13

Davies J German DM Godfrey MW Hindle A ldquoSoftware bertillonage finding the provenance of an entityrdquo - MSR rsquo11

Source CodeCCFinderNICADSimScan

Bytecode Bertillonage Signatures

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 11: Large-Scale Empirical Studies of Mobile Apps

11

12

SOFTWARE REUSEExponential Growth in the Number of Apps

in the Google Play app store

TimeMar-

09

May-09

Jul-0

9

Sep-09

Nov-09

Jan-1

0

Mar-10

May-10

Jul-1

0

Sep-10

Nov-10

Jan-1

1

Mar-11

May-11

Jul-1

1

Sep-11

Nov-11

Jan-1

2

Mar-12

May-12

Jul-1

2

Sep-12

0

100000

200000

300000

400000

500000

600000

700000

800000800K

700K

600K

500K

400K

300K

200K

100K

0

Num

ber o

f app

s

Comparing Two Classes

13

Davies J German DM Godfrey MW Hindle A ldquoSoftware bertillonage finding the provenance of an entityrdquo - MSR rsquo11

Source CodeCCFinderNICADSimScan

Bytecode Bertillonage Signatures

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 12: Large-Scale Empirical Studies of Mobile Apps

12

SOFTWARE REUSEExponential Growth in the Number of Apps

in the Google Play app store

TimeMar-

09

May-09

Jul-0

9

Sep-09

Nov-09

Jan-1

0

Mar-10

May-10

Jul-1

0

Sep-10

Nov-10

Jan-1

1

Mar-11

May-11

Jul-1

1

Sep-11

Nov-11

Jan-1

2

Mar-12

May-12

Jul-1

2

Sep-12

0

100000

200000

300000

400000

500000

600000

700000

800000800K

700K

600K

500K

400K

300K

200K

100K

0

Num

ber o

f app

s

Comparing Two Classes

13

Davies J German DM Godfrey MW Hindle A ldquoSoftware bertillonage finding the provenance of an entityrdquo - MSR rsquo11

Source CodeCCFinderNICADSimScan

Bytecode Bertillonage Signatures

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 13: Large-Scale Empirical Studies of Mobile Apps

Comparing Two Classes

13

Davies J German DM Godfrey MW Hindle A ldquoSoftware bertillonage finding the provenance of an entityrdquo - MSR rsquo11

Source CodeCCFinderNICADSimScan

Bytecode Bertillonage Signatures

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 14: Large-Scale Empirical Studies of Mobile Apps

14

4323 app

501 apps

554 apps1034 apps

1115 apps1119 apps

Apps Collected in the Google Play app store

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 15: Large-Scale Empirical Studies of Mobile Apps

15

Total Classes 59208 52425 88156 250063 84205

3000

2500

2000

1500

1000

500

0

Range of Android Apps Size

Android Apps size dispersion

Num

ber o

f cla

sses

Category

An App

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 16: Large-Scale Empirical Studies of Mobile Apps

How Much Diversity is There in a Category

16

One

Cat

egor

y

App 1 App 2 App 3

10=

B = 4

Reused Classes = 60

A C D

BAC D

AAD

BC

B Classes

Unique Classes = 40

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 17: Large-Scale Empirical Studies of Mobile Apps

17

80

70

60

50

40

30

20

10

0

Perc

enta

ge o

f Cla

sses

Reu

sed

HIGH Code Reuse

Category

53

71

5954

68

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 18: Large-Scale Empirical Studies of Mobile Apps

Global Reuse of Classes

18

One

Cat

egor

y

App 1 App 2 App 3

global (App 1) =

A BC D

A EF

A DE F G

5 3 4 35

= 060

global (App 2) = 33

= 100

global (App 3) = 34

= 075

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 19: Large-Scale Empirical Studies of Mobile Apps

High Global Reuse

19

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Per

cent

age

of A

pps

for e

ach

Cat

egor

y100

80

60

40

20

0

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 20: Large-Scale Empirical Studies of Mobile Apps

High Global Reuse

20

Per

cent

age

of A

pps

for e

ach

Cat

egor

y 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 ldquoLarge-Scale Code Reuse in Open Source Softwarerdquo Emerging Trends in FLOSS Research and Development 2007 FLOSS rsquo07 First International Workshop on vol no pp7 20-26 May 2007

10 09 08 07 06 05 04 03 02 01 0Global Reuse

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 21: Large-Scale Empirical Studies of Mobile Apps

Pair Wise Reuse

21

One

Cat

egor

y

App 1 App 2

local (App 1 App 2)

A BC D

A EF

25

= = 040

local (App 2 App 1) 23

= = 067

local (App 3 App 2) 24

= = 050

App 3

A DF GE

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 22: Large-Scale Empirical Studies of Mobile Apps

22

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 23: Large-Scale Empirical Studies of Mobile Apps

Social 57 out of 1119 apps were identical

23

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 24: Large-Scale Empirical Studies of Mobile Apps

Reuse of framework

24

Developer ADeveloper C Developer B Developer D

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 25: Large-Scale Empirical Studies of Mobile Apps

25

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 26: Large-Scale Empirical Studies of Mobile Apps

Large dataset of appsThe Google Play was crawled along the 2011 obtainingbull 500K app versionsbull 200K apps

The data obtained from this crawlingbull The app files (APK files)bull 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

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 27: Large-Scale Empirical Studies of Mobile Apps

27

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 28: Large-Scale Empirical Studies of Mobile Apps

The rating of an app shows the app usersrsquo perceived quality of an app

28

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 29: Large-Scale Empirical Studies of Mobile Apps

Congratulations it only took you 700000 apps

I found the app

The rating of an app helps it to be found

29

At least 1000 results

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 30: Large-Scale Empirical Studies of Mobile Apps

30

Version-rating

X1X2X3X1X3

Number of Raters

= 5 = 8= 9= 2= 3

10 27

Version 10

Version-rating 10 = 2710 = 27

Number of Stars

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 31: Large-Scale Empirical Studies of Mobile Apps

Global-rating

31

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 32: Large-Scale Empirical Studies of Mobile Apps

Many apps contain biased ratings because of a low number of versions andor raters

32

1 2 3 4 5Rating

Density Plot of the ratings of all apps with at least 10 raters

Den

sity

0 0

1 0

2 0

3 0

4 0

5 0

6 0

7

1 2 3 4 5Rating

Density Plot of the ratings of all apps

Den

sity

0

0

5

1

0

1

5

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 33: Large-Scale Empirical Studies of Mobile Apps

bull App-user could download an app with high average-rating even though the quality is very bad

bull 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 rateddownloaded app

33

Unhappy app-users with high average rated apps

App-developers depend so much on their first app version

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 34: Large-Scale Empirical Studies of Mobile Apps

34

The global-rating is resilient to fluctuations aftera large number of app-users have rated an app

1e+00 1e+02 1e+04 1e+06Initial raters

-2

0

2

4

Glo

bal-r

atin

g in

crea

se

Global-rating increase

-15 -10 -05 0 05 10 15

Vers

ion-

ratin

g in

crea

se

-4

-2

0

2

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 35: Large-Scale Empirical Studies of Mobile Apps

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 nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awful version 1000 by 1000

Global-rating = (3000000+1000) divide(1000000+1000) = 2998~30

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 36: Large-Scale Empirical Studies of Mobile Apps

36

The global-rating does not incentive to app developers to release a better app

Version nRated by 1000000 app-users

Global-rating 30

Global-rating= sum divide sum = 30

sum = sum x global-rating = 3000000

New Awesome version5000 by1000

Global-rating = (3000000+5000) divide(1000000+1000) = 3001~30

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 37: Large-Scale Empirical Studies of Mobile Apps

37

Most apps can recover from a drop in rating within the next few versions

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 38: Large-Scale Empirical Studies of Mobile Apps

38

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 39: Large-Scale Empirical Studies of Mobile Apps

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)

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 40: Large-Scale Empirical Studies of Mobile Apps

40

App-stores may provide a service to help app developers to predict

the rating of their apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 41: Large-Scale Empirical Studies of Mobile Apps

41

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

The present rating system does not

motivateapp-developers to

improve the quality of their apps

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 42: Large-Scale Empirical Studies of Mobile Apps

42

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein mobile apps App rating Ad maintenance

LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS

The present rating system does not

motivateapp-developers to

improve the quality of their apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 43: Large-Scale Empirical Studies of Mobile Apps

Free apps dominate the app market

43

~90 of downloaded apps are free-to-download apps2

1AppBrain (2013) lsquoComparison of free and paid android appsrsquo httpwwwappbraincomstatsfree-and-paid-android-applications2 Pettey C and van der Meulen R (2012) lsquoGartner says free apps will account for nearly 90 percent of total mobile app store downloads in 2012rsquo httpwwwgartnercomitpagejspid=2153215

~75 apps are free to download1

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 44: Large-Scale Empirical Studies of Mobile Apps

Advertisements in apps

44

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 45: Large-Scale Empirical Studies of Mobile Apps

App developers depend on ads to generate revenue from their free to download apps

45

This is an ad

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 46: Large-Scale Empirical Studies of Mobile Apps

Process to serve an ad

Advertiser

46CPA

CPM

CPC

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 47: Large-Scale Empirical Studies of Mobile Apps

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 181 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) lsquoSmaato releases q2 2011 mobile metrics reportrsquo httpwwwsmaatocommetricsq22011-22 Opera (2013) lsquoThe state of mobile advertising q2 2012rsquo httpbusinessoperacomsma2012q2

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 48: Large-Scale Empirical Studies of Mobile Apps

48

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

App

Log

ic

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 49: Large-Scale Empirical Studies of Mobile Apps

49

App

Log

ic

Ad-

med

iato

r

Configuration Server

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 50: Large-Scale Empirical Studies of Mobile Apps

50

App

Log

ic

Ad-exchangeServer

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 51: Large-Scale Empirical Studies of Mobile Apps

51

Ad-network model

Ad-mediator model

Ad-exchange model

Three ad-serving modelsAd-network Ad-mediator Ad-exchange

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 52: Large-Scale Empirical Studies of Mobile Apps

Ad-libraries are updated constantly

52

Corporate moves

Integrate new features (eg ad video)

Add compatibility with other ad libraries

Fix bugs (memory ads no displayed etc)

Manage personal information

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 53: Large-Scale Empirical Studies of Mobile Apps

SW Engineering Challengesbull Balance between app and ad

environmentAds are annoying 68 of consumers find online ads ldquoannoyingrdquo and ldquodistractingrdquo1

53

bull Increase revenueApp-developers evaluate which ad-library generates the highest revenue

bull Time between publicationAd-library providers are updating constantly their ad-libraries

1httpwwwadobecomaboutadobepressroompdfsAdobe_State_of_Online_Advertising_Studypdf

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 54: Large-Scale Empirical Studies of Mobile Apps

Ad-maintenanceAd-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

bull Examples of such changes are correcting problems with the ad libraries modify add remove or update an ad library in an app

bull 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

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 55: Large-Scale Empirical Studies of Mobile Apps

Identifying ad-libraries1 Search the [aA][dD] regular expression across the

appsrsquo classes compackageAdlibraryNameAdclassName

2 Web search of the packageAdlibraryName

55

72 ad-libraries

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 56: Large-Scale Empirical Studies of Mobile Apps

Ad-libraries play a prominent role in the free apps

56

4951

No ads

Ad-supported apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 57: Large-Scale Empirical Studies of Mobile Apps

The percentage of ad supported apps varies across the different app categories

57

Categories

Pho

togr

aphy

Gam

es

Ent

erta

inm

ent

Com

ics

Per

sona

lizat

ion

Med

iaamp

Vid

eo

New

sampM

agaz

ines

Libr

arie

sampD

emo

Boo

ksamp

refe

renc

es

Spo

rts

Hea

lthamp

Fitn

ess

Wea

ther

Tool

s

Edu

catio

n

Life

styl

e

Mus

icamp

Aud

io

Soc

ial

Tran

spor

tatio

n

Pro

duct

ivity

Trav

elamp

Loca

l

Com

mun

icat

ion

Sho

ppin

g

Fina

nce

Med

ical

Bus

ines

s

9080706050403020100

Per

cent

age

of a

d-su

ppor

ted

apps

per

cat

egor

y

781 778

643 638

Top categories with ad-supported apps

262245

189 143

Top categories with less ad-supported apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 58: Large-Scale Empirical Studies of Mobile Apps

Few different ad libraries dominate the ad library market

58

Ad-libraries

60

50

40

30

20

10

0

Per

cent

age

of a

d-su

ppor

ted

apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 59: Large-Scale Empirical Studies of Mobile Apps

bull Revenue

bull Premium ad-networks

bull Regional vs global

bull Trust

bull Type ad-content

59

Choosing an ad-library

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 60: Large-Scale Empirical Studies of Mobile Apps

The ad-network serving model dominates drastically the ad market

bull 61 out of the 72 (8472) of the ad libraries identified work as ad networks 6 (833) are ad-mediator libraries and 5 (694) are ad exchanges libraries

60

Ad-serving model

Per

cent

age

of a

d-su

ppor

ted

apps 88

116 99

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 61: Large-Scale Empirical Studies of Mobile Apps

Ad supported apps can contain a large number of ad libraries

61

I think I hadso 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

90K80K70K60K50K40K30K20K10K

0

Num

ber o

f app

s

175

7(2

125

6)

6511(78775)

709

(8

581

) 3

36

(40

68)

059(709)

006 (78)

006 (73)

105 (1265)

050 (608)

020 (240)

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 62: Large-Scale Empirical Studies of Mobile Apps

Are app developers updating the ad-libraries

62

Version 10 Version n

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 63: Large-Scale Empirical Studies of Mobile Apps

App developers are frequently updating the ad libraries in their apps

Ad-libraries werebull Updated 6525

bull Added 4369

bull Removed 2464

63

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 64: Large-Scale Empirical Studies of Mobile Apps

942 apps out of the 6850 (1375) only updated their ad-libraries

64

How much a calculator can change

942 apps out of 6850 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

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 65: Large-Scale Empirical Studies of Mobile Apps

65

Money

To use only one ad-network results in the least number of ad changes followed by the

ad-exchanges serving model

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 66: Large-Scale Empirical Studies of Mobile Apps

The number of ad librariesdoes not affect the rating

66

Number of ad-libraries1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 21 23 27 28

5

4

3

2

1

Vers

ion-

ratin

g

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 67: Large-Scale Empirical Studies of Mobile Apps

The behaviour of an ad-library affects the rating of an app

67

Ad-libraries

Vers

ion-

ratin

g

Good game bad ads I was loving the game until I noticed it put a new shortcut called rdquoAppsrdquo on my launcher Sorry but if your idea of advertising is putting sht in launcher pages or notifications then Irsquom not interested

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 68: Large-Scale Empirical Studies of Mobile Apps

68

Software reuse has highly

contributed to accelerate the production of Android apps

Software reusein 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

motivateapp-developers to

improve the quality of their apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 69: Large-Scale Empirical Studies of Mobile Apps

69

Conclusions

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 70: Large-Scale Empirical Studies of Mobile Apps

70

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 71: Large-Scale Empirical Studies of Mobile Apps

71

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 72: Large-Scale Empirical Studies of Mobile Apps

72

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 73: Large-Scale Empirical Studies of Mobile Apps

73

Bertillonage SignatureDecompiled Class

Package pspublic class ClassName extends jlE implements xyZ

public void C() Classlsquo constructor

private int a(javalangString s) throws packsubPackageK

[compiled byte code]

Bertillonage Signature

ps

public void C()

private int a(String) throws K

public class ClassName extends E implements Z

sClass =

sM1 =

sM2 =

Bertillonage class signature = ltsClassltsM1sM2gtgt

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74
Page 74: Large-Scale Empirical Studies of Mobile Apps

74

  • LARGE-SCALE EMPIRICAL STUDIES OF MOBILE APPS
  • Mobile apps are applications to run on mobile devices (smartpho
  • Apps are different than traditional software
  • Billionaire market with thousands of software developers
  • Accelerated Rate of Growth in the Number of Apps
  • Free apps dominate the app market
  • App developers are competing against other hundred of thousands
  • Research statement
  • The Android platform dominates the worldwide market
  • Slide 10
  • Slide 11
  • Slide 12
  • Comparing Two Classes
  • Slide 14
  • Range of Android Apps Size
  • How Much Diversity is There in a Category
  • HIGH Code Reuse
  • Global Reuse of Classes
  • High Global Reuse
  • High Global Reuse (2)
  • Pair Wise Reuse
  • Slide 22
  • Social 57 out of 1119 apps were identical
  • Reuse of framework
  • Slide 25
  • Large dataset of apps
  • Slide 27
  • The rating of an app shows the app usersrsquo perceived quality of
  • The rating of an app helps it to be found
  • Version-rating
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • Slide 38
  • Size OO Design and Reuse metrics are most closely related with
  • Slide 40
  • Slide 41
  • Slide 42
  • Free apps dominate the app market
  • Advertisements in apps
  • App developers depend on ads to generate revenue from their fre
  • Process to serve an ad
  • Low Number of Ads available (Low Fill rate)
  • Three ad-serving models Ad-network Ad-mediator Ad-exchange
  • Slide 49
  • Slide 50
  • Slide 51
  • Ad-libraries are updated constantly
  • SW Engineering Challenges
  • Ad-maintenance
  • Identifying ad-libraries
  • Ad-libraries play a prominent role in the free apps
  • The percentage of ad supported apps varies across the different
  • Few different ad libraries dominate the ad library market
  • Choosing an ad-library
  • The ad-network serving model dominates drastically the ad marke
  • Ad supported apps can contain a large number of ad libraries
  • Are app developers updating the ad-libraries
  • App developers are frequently updating the ad libraries in thei
  • 942 apps out of the 6850 (1375) only updated their ad-librar
  • To use only one ad-network results in the least number of ad ch
  • The number of ad libraries does not affect the rating
  • The behaviour of an ad-library affects the rating of an app
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Bertillonage Signature
  • Slide 74