SlideShare a Scribd company logo
What Are the Characteristics of High-rated Apps?
A Case Study on Free Android Applications
David LoYuan Tian Meiyappan
Nagappan
Ahmed E.
Hassan
Dramatic mobile app market & mobile app usage
growth in recent years.
“
”
In 2012 the app
economy was worth
$53Bn and is expected
to expand at a 28%
CAGR up to 2016,
reaching $143Bn.
2
Mobile app market is attractive, however building
a successful app is hard.
Highly Competitive:
With other 50,000 apps in the
app store
3
Limited Chance:
Smartphone users stick to
limited mobile apps.
How to make a successful app?
- Let’s contrast high- and low-rated apps!
Prior Studies
• Bavota et al. find that low-rated apps have method calls
to APIs that are more change or fault prone.
(Bavota et al., TSE 2015)
• Taba et al. find that low-rated apps have more complex
user interface. (Taba et al., ICWE 2014)
• Chia et al. find that number of required permissions
impacts app ratings (Chia et al. WWW 2012)
• Many other studies.
5
This Study
• Consider a comprehensive set of factors that may
impact app ratings instead of only a few.
‒ Consider existing factors
‒ Plus additional factors not considered before
• Compare the relative importance of each of the factors
on app ratings
‒ In predicting high-rated and low-rated apps
‒ On a reasonably large dataset of more than 1000 apps
6
Agenda
7
• Motivation
• Factors
• Case study
• Discussion
• Conclusion
We analyze 28 factors in 8 dimensions
Cate-
gory
App
Size
Code.
Comp.
Library
Depend.
Library
Quality
UI
Comp.
User
Req.
Market-
ing
8
App Size Dimension
Why App Size?
+ Large code => richer
functionality
- Larger code => higher
chance for bugs
(Zimmermann, 2007)
9
Cate-
gory
App
Size
Code.
Comp.
Library
Depend.
Library
Quality
UI
Comp.
User
Req.
Market-
ing
10
Why Code
Complexity?
+ More complex code
=> more advanced
functionality
- More complex code
=> more bugs
(Subramanyam, 2003)
Cate-
gory
App
Size
Code.
Comp.
Library
Depend.
Library
Quality
UI
Comp.
User
Req.
Market-
ing
Code Complexity Dimension
11
Why Library
Dependence?
+ Higher dependence =>
richer functionality built
upon third party code
- Higher dependence =>
difficulty to keep up with
library evolution, which
results in bugs.
(Syer, 2014)
Cate-
gory
App
Size
Code.
Comp.
Library
Depend.
Library
Quality
UI
Comp.
User
Req.
Market-
ing
Library Dependence Dimension
12
Why Library Quality?
- Buggy library code =>
buggy apps built on
top of them.
- Frequently changed
libraries => bugs if
apps are not properly
maintained
Cate-
gory
App
Size
Code.
Comp.
Library
Depend.
Library
Quality
UI
Comp.
User
Req.
Market-
ing
Library Quality Dimension
13
Why UI Complexity?
- More complex UI => app
is harder to use.
+ More complex UI =>
more functionality.
Cate-
gory
App
Size
Code.
Comp.
Library
Depend.
Library
Quality
UI
Comp.
User
Req.
Market-
ing
UI Complexity Dimension
14
Why User
Requirements?
+ Larger target SDK
version => incorporation
of latest feature, active
maintenance effort.
+ Number of permission
request => more
features.
- Number of permission
request => privacy risk.
User Requirement Dimension
Cate-
gory
App
Size
Code.
Comp.
Library
Depend.
Library
Quality
UI
Comp.
User
Req.
Market-
ing
15
Why Marketing Effort?
+ More marketing effort
=> better first impression,
more functionality.
Marketing Dimension
Cate-
gory
App
Size
Code.
Comp.
Library
Depend.
Library
Quality
UI
Comp.
User
Req.
Market-
ing
16
Why Category?
Different category
=> different user
expectation.
Category Dimension
Cate-
gory
App
Size
Code.
Comp.
Library
Depend.
Library
Quality
UI
Comp.
User
Req.
Market-
ing
Factors in App Size Dimension
• Binary size of the APK file (measured in KB)
Install Size
• Total number of classes (including library code).
Total classes
• Total number of app specific classes.
App classes
• Total number of activities defined in the
AndroidManifest.xml file.
# Activities
• Total number of services defined in the
AndroidManifest.xml file.
# Services
17
Factors in Code Complexity Dimension
• Chidamber and Kemerer’s object oriented complexity metrics,
e.g., the number of methods in each class.
• Note that we compute the mean over all classes in each app.
Six CK metrics
• Mean of the number of other classes that depend upon each
class.
Afferent coupling
• Mean of the number of public methods in each class.
Number of public methods
18
Factors in Library Dependence Dimension
• Total number of (percentage of) calls to libraries that start
with “android.”.
Absolute (percentage) dependence on Android
• Total number of (percentage of) calls to third party libraries.
19
Absolute (percentage) dependence on third party libraries
Factors in Library Quality Dimension
• Mean number of methods changed in used Android APIs
(Bavota et al. 2015)
Change of used Android APIs
• Mean number of bugs in the used Android APIs
(Bavota et al. 2015)
Faultiness of used Android API
20
Factors in UI Complexity Dimension
• Mean number of input elements per layout.
Input elements per layout
• Mean number of output elements per layout.
Output elements per layout
21
22
Factors in User Requirements Dimension
• The minimum SDK version required for the app to run.
Minimum SDK version
• The SDK version that the app targets. If not set, the default
value equals to minSDK.
Target SDK version
• Number of required features from user’s device (e.g., camera).
Required device features
• Number of permissions needed from user.
Required user permission
Factors in Marketing Effort Dimension
• Number of words appearing in the description of the app in its
Play Store page.
Length of description
• Number of images shown on the app’s store page.
Promotional images
23
24
All the factors could be calculated by using tools including:
ApkTool, dex2jar, BCEL based on app apk and info on app store.
25
Meta Data
Extract: Category, Size
Rating, Rating Count
Google Play
Extract:
Marketing
Extract: Size
APKs
ApkTool
AndroidManifest
Files, Resource
Extract:
Requirements on Users, UI
BCEL
dex2jar
Extract: Code Complexity, Library
Dependence, quality of library Code
Jars
Android API Change
and Bug Logs
Step 1
Step 2 Step
3
26
Meta Data
Extract :
Marketing
Extract :
Category, Size
Rating, Rating Count
Google Play
Step 1
27
Extract: Size
Step 2
APKsApkTool
AndroidManifest
Files, Resource
Extract:
Requirements on Users, UI
28
BCEL
Step 3
APKs dex2jar
Extract: Code Complexity,
Library Dependence, quality of library Code
JarsExtract: Size
Android API Change
and Bug Logs
Our case study is done on 1,492 android apps:
29
Step 1: Randomly selected and
crawled 10,000 apps.
Step 2: Filter out apps that:
‒ Have less than 10 ratings
‒ Could not be processed by
our tools
Step 3: Sort apps in each category by
their ratings. Select the top
10% (high-rated) and bottom
10% (low-rated) apps.
Research Questions
RQ2: What are the important factors that could be
used to predict app ratings?
RQ1: Is there a relationship between each factor
an app rating?
30
31
RQ1: Relation between factors and rating
• Compare the values of each factor between
high-rated and low rated apps.
• Analyze the statistical significance and effect
size of the difference between the two groups of
apps.
‒ Use Mann-Whitney U test at p-value of 0.01.
‒ Compute Cliff’s Delta (or d).
32
-ve
+ve
+ve
RQ1: Relation between factors and rating
RQ1: Summary of Findings
High-rated apps are statistically significantly
different from low-rated apps in 17 out of the 28
factors.
Generally, high-rated apps are larger with more
complex code, more preconditions, more
marketing efforts, more dependence on
libraries, and they make use of higher quality
Android libraries.
33
34
RQ2: Important factors for prediction
• Remove highly correlated factors
• Remove redundant factors
• Use random forest
‒ Ten fold cross validation
‒ Measure performance in terms of F1 and AUC
‒ Repeat the process with different factors omitted
• Employ Scott-Knott test
‒ Identify groups of factors that are statistically
significantly different from one another
The RF model
could achieve:
F-measure of
0.74 + AUC
of 0.81
RQ2: Important factors for prediction
35
Top-3
Size of the app
# Promotional
Images
Target SDK
RQ2: Important factors for prediction
RQ2: Summary of Findings
The size of an app, the number of promotional
images on its store page, and the target SDK are
the three most influential factors in determining the
likelihood of an app being a high rated app.
36
Discussion: Comparison with Past Findings
• Reinforce findings by Bavota et al. (TSE’15)
‒ API quality influence rating
‒ However, it is not the most important factors (#5)
• Refute findings by Taba et al. (ICWE’14)
‒ UI complexity is not statistically significantly related
with app ratings.
• Reinforce findings by Chia et a. et al. (WWW’12)
‒ # required permission is weakly associated with rating
• Highlight additional factors: app size, promotion
effort, target sdk.
37
Discussion: Power of Multi-Factor Analysis
0
0.2
0.4
0.6
0.8
Precision Recall F-measure
All Size
Code Complexity Dependence
Library Quality UI Complexity
Requirement on User Marketing
Category
38
Single dimension factors are not enough to successfully
differentiate high-rated from low-rated apps.
0.7
39
40
Future Work
• Explore additional factors
• Do a more fine-grained study (individual category)
• Employ a causality analysis to get a deeper
understanding
• Interview Android app developers to get their
insight
Questions? Comments? Advice?
{yuan.tian.2012,davidlo}@smu.edu.sg
mei@se.rit.edu, ahmed@cs.queensu.ca
41
Thank You !

More Related Content

What's hot

The Essentials of Mobile App Testing and Monitoring
The Essentials of Mobile App Testing and MonitoringThe Essentials of Mobile App Testing and Monitoring
The Essentials of Mobile App Testing and Monitoring
MobilePundits
 
An update to software testing trends
An update to software testing trendsAn update to software testing trends
An update to software testing trends
BugRaptors
 
DEVELOPING CUSTOM APPS USING DYNAMIC XML PARSING
DEVELOPING CUSTOM APPS USING DYNAMIC XML PARSINGDEVELOPING CUSTOM APPS USING DYNAMIC XML PARSING
DEVELOPING CUSTOM APPS USING DYNAMIC XML PARSING
Journal For Research
 
Top 10 mobile app testing interview questions
Top 10 mobile app testing interview questionsTop 10 mobile app testing interview questions
Top 10 mobile app testing interview questions
Rock Interview
 
sudheer kumar.Resume @2016
sudheer kumar.Resume @2016sudheer kumar.Resume @2016
sudheer kumar.Resume @2016sudheer kumar
 
Synopsis minor project
Synopsis minor projectSynopsis minor project
Synopsis minor project
Nidhi Chauhan
 
Mobile marketing for edX online Courses
Mobile marketing for edX online CoursesMobile marketing for edX online Courses
Mobile marketing for edX online Courses
PratapZachariah
 
Maximizing your enterprise mobility and mobile testing strategy
Maximizing your enterprise mobility and mobile testing strategyMaximizing your enterprise mobility and mobile testing strategy
Maximizing your enterprise mobility and mobile testing strategyPerfecto Mobile
 
Step by-step mobile testing approaches and strategies
Step by-step mobile testing approaches and strategiesStep by-step mobile testing approaches and strategies
Step by-step mobile testing approaches and strategies
Alisha Henderson
 
TechTalk: Wind Tunnel, Personas, and Testing Real UX
TechTalk: Wind Tunnel, Personas, and Testing Real UXTechTalk: Wind Tunnel, Personas, and Testing Real UX
TechTalk: Wind Tunnel, Personas, and Testing Real UX
Lizzy Guido (she/her)
 
Recommending and Localizing Change Requests for Mobile Apps based on User Rev...
Recommending and Localizing Change Requests for Mobile Apps based on User Rev...Recommending and Localizing Change Requests for Mobile Apps based on User Rev...
Recommending and Localizing Change Requests for Mobile Apps based on User Rev...
Pasquale Salza
 
The Increasing Value and Complexity of Software Call for the Reevaluation of ...
The Increasing Value and Complexity of Software Call for the Reevaluation of ...The Increasing Value and Complexity of Software Call for the Reevaluation of ...
The Increasing Value and Complexity of Software Call for the Reevaluation of ...
PRQA
 
Resume imran ansari ansari
Resume imran ansari ansariResume imran ansari ansari
Resume imran ansari ansari
Md Imran Ansari
 
Open Source Software Survivability Analysis Using Communication Pattern Valid...
Open Source Software Survivability Analysis Using Communication Pattern Valid...Open Source Software Survivability Analysis Using Communication Pattern Valid...
Open Source Software Survivability Analysis Using Communication Pattern Valid...
IOSR Journals
 
ADVANCEMENT IN THE MOBILE APP REVIEW SYSTEM TO ENHANCE QUALITY OF MOBILE APPL...
ADVANCEMENT IN THE MOBILE APP REVIEW SYSTEM TO ENHANCE QUALITY OF MOBILE APPL...ADVANCEMENT IN THE MOBILE APP REVIEW SYSTEM TO ENHANCE QUALITY OF MOBILE APPL...
ADVANCEMENT IN THE MOBILE APP REVIEW SYSTEM TO ENHANCE QUALITY OF MOBILE APPL...
csandit
 
Everything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable PhonesEverything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable Phones
Perfecto by Perforce
 
Mob4Hire Mobile App Usability (MobExperience) Overview
Mob4Hire Mobile App Usability (MobExperience) OverviewMob4Hire Mobile App Usability (MobExperience) Overview
Mob4Hire Mobile App Usability (MobExperience) Overview
Stephen King
 
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
ijseajournal
 

What's hot (20)

The Essentials of Mobile App Testing and Monitoring
The Essentials of Mobile App Testing and MonitoringThe Essentials of Mobile App Testing and Monitoring
The Essentials of Mobile App Testing and Monitoring
 
An update to software testing trends
An update to software testing trendsAn update to software testing trends
An update to software testing trends
 
GSOC 2016 mifos
GSOC 2016 mifosGSOC 2016 mifos
GSOC 2016 mifos
 
DEVELOPING CUSTOM APPS USING DYNAMIC XML PARSING
DEVELOPING CUSTOM APPS USING DYNAMIC XML PARSINGDEVELOPING CUSTOM APPS USING DYNAMIC XML PARSING
DEVELOPING CUSTOM APPS USING DYNAMIC XML PARSING
 
Top 10 mobile app testing interview questions
Top 10 mobile app testing interview questionsTop 10 mobile app testing interview questions
Top 10 mobile app testing interview questions
 
sudheer kumar.Resume @2016
sudheer kumar.Resume @2016sudheer kumar.Resume @2016
sudheer kumar.Resume @2016
 
Synopsis minor project
Synopsis minor projectSynopsis minor project
Synopsis minor project
 
Mobile marketing for edX online Courses
Mobile marketing for edX online CoursesMobile marketing for edX online Courses
Mobile marketing for edX online Courses
 
Maximizing your enterprise mobility and mobile testing strategy
Maximizing your enterprise mobility and mobile testing strategyMaximizing your enterprise mobility and mobile testing strategy
Maximizing your enterprise mobility and mobile testing strategy
 
Step by-step mobile testing approaches and strategies
Step by-step mobile testing approaches and strategiesStep by-step mobile testing approaches and strategies
Step by-step mobile testing approaches and strategies
 
TechTalk: Wind Tunnel, Personas, and Testing Real UX
TechTalk: Wind Tunnel, Personas, and Testing Real UXTechTalk: Wind Tunnel, Personas, and Testing Real UX
TechTalk: Wind Tunnel, Personas, and Testing Real UX
 
Recommending and Localizing Change Requests for Mobile Apps based on User Rev...
Recommending and Localizing Change Requests for Mobile Apps based on User Rev...Recommending and Localizing Change Requests for Mobile Apps based on User Rev...
Recommending and Localizing Change Requests for Mobile Apps based on User Rev...
 
The Increasing Value and Complexity of Software Call for the Reevaluation of ...
The Increasing Value and Complexity of Software Call for the Reevaluation of ...The Increasing Value and Complexity of Software Call for the Reevaluation of ...
The Increasing Value and Complexity of Software Call for the Reevaluation of ...
 
Resume imran ansari ansari
Resume imran ansari ansariResume imran ansari ansari
Resume imran ansari ansari
 
Open Source Software Survivability Analysis Using Communication Pattern Valid...
Open Source Software Survivability Analysis Using Communication Pattern Valid...Open Source Software Survivability Analysis Using Communication Pattern Valid...
Open Source Software Survivability Analysis Using Communication Pattern Valid...
 
ADVANCEMENT IN THE MOBILE APP REVIEW SYSTEM TO ENHANCE QUALITY OF MOBILE APPL...
ADVANCEMENT IN THE MOBILE APP REVIEW SYSTEM TO ENHANCE QUALITY OF MOBILE APPL...ADVANCEMENT IN THE MOBILE APP REVIEW SYSTEM TO ENHANCE QUALITY OF MOBILE APPL...
ADVANCEMENT IN THE MOBILE APP REVIEW SYSTEM TO ENHANCE QUALITY OF MOBILE APPL...
 
Everything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable PhonesEverything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable Phones
 
Mob4Hire Mobile App Usability (MobExperience) Overview
Mob4Hire Mobile App Usability (MobExperience) OverviewMob4Hire Mobile App Usability (MobExperience) Overview
Mob4Hire Mobile App Usability (MobExperience) Overview
 
Vaibhav-resume
Vaibhav-resumeVaibhav-resume
Vaibhav-resume
 
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...
 

Viewers also liked

A Case Study of Bias in Bug-Fix Datasets
A Case Study of Bias in Bug-Fix DatasetsA Case Study of Bias in Bug-Fix Datasets
A Case Study of Bias in Bug-Fix Datasets
SAIL_QU
 
An Automated Approach for Recommending When to Stop Performance Tests
An Automated Approach for Recommending When to Stop Performance TestsAn Automated Approach for Recommending When to Stop Performance Tests
An Automated Approach for Recommending When to Stop Performance Tests
SAIL_QU
 
An Industrial Case Study of Automatically Identifying Performance Regression-...
An Industrial Case Study of Automatically Identifying Performance Regression-...An Industrial Case Study of Automatically Identifying Performance Regression-...
An Industrial Case Study of Automatically Identifying Performance Regression-...
SAIL_QU
 
Understanding the Rationale for Updating a Function's Comment
Understanding the Rationale for Updating a Function's CommentUnderstanding the Rationale for Updating a Function's Comment
Understanding the Rationale for Updating a Function's Comment
SAIL_QU
 
Supporting Software Evolution Using Adaptive Change Propagation
Supporting Software Evolution Using Adaptive Change PropagationSupporting Software Evolution Using Adaptive Change Propagation
Supporting Software Evolution Using Adaptive Change Propagation
SAIL_QU
 
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
SAIL_QU
 
An Industrial Case Study on the Automated Detection of Performance Regression...
An Industrial Case Study on the Automated Detection of Performance Regression...An Industrial Case Study on the Automated Detection of Performance Regression...
An Industrial Case Study on the Automated Detection of Performance Regression...
SAIL_QU
 

Viewers also liked (7)

A Case Study of Bias in Bug-Fix Datasets
A Case Study of Bias in Bug-Fix DatasetsA Case Study of Bias in Bug-Fix Datasets
A Case Study of Bias in Bug-Fix Datasets
 
An Automated Approach for Recommending When to Stop Performance Tests
An Automated Approach for Recommending When to Stop Performance TestsAn Automated Approach for Recommending When to Stop Performance Tests
An Automated Approach for Recommending When to Stop Performance Tests
 
An Industrial Case Study of Automatically Identifying Performance Regression-...
An Industrial Case Study of Automatically Identifying Performance Regression-...An Industrial Case Study of Automatically Identifying Performance Regression-...
An Industrial Case Study of Automatically Identifying Performance Regression-...
 
Understanding the Rationale for Updating a Function's Comment
Understanding the Rationale for Updating a Function's CommentUnderstanding the Rationale for Updating a Function's Comment
Understanding the Rationale for Updating a Function's Comment
 
Supporting Software Evolution Using Adaptive Change Propagation
Supporting Software Evolution Using Adaptive Change PropagationSupporting Software Evolution Using Adaptive Change Propagation
Supporting Software Evolution Using Adaptive Change Propagation
 
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
Empircal Studies of Performance Bugs & Performance Analysis Approaches for La...
 
An Industrial Case Study on the Automated Detection of Performance Regression...
An Industrial Case Study on the Automated Detection of Performance Regression...An Industrial Case Study on the Automated Detection of Performance Regression...
An Industrial Case Study on the Automated Detection of Performance Regression...
 

Similar to What are the Characteristics of High-rated Apps

End Users’ Perception of Hybrid Mobile Apps in the Google Play Store
End Users’ Perception of Hybrid Mobile Apps in the Google Play StoreEnd Users’ Perception of Hybrid Mobile Apps in the Google Play Store
End Users’ Perception of Hybrid Mobile Apps in the Google Play Store
Ivano Malavolta
 
React Native Market Overview for Cross-Platform App Development.pdf
React Native Market Overview for Cross-Platform App Development.pdfReact Native Market Overview for Cross-Platform App Development.pdf
React Native Market Overview for Cross-Platform App Development.pdf
Techugo
 
React Native App Development.
React Native App Development.React Native App Development.
React Native App Development.
Techugo
 
Practical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User MonitoringPractical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User Monitoring
Dynatrace
 
[2015/2016] Mobile thinking
[2015/2016] Mobile thinking[2015/2016] Mobile thinking
[2015/2016] Mobile thinking
Ivano Malavolta
 
Hard work matters for everyone in everytbing
Hard work matters for everyone in everytbingHard work matters for everyone in everytbing
Hard work matters for everyone in everytbing
lojob95766
 
apidays LIVE Paris - Growing an API Culture by Saul Caganoff & Liz Douglass
apidays LIVE Paris - Growing an API Culture by Saul Caganoff & Liz Douglassapidays LIVE Paris - Growing an API Culture by Saul Caganoff & Liz Douglass
apidays LIVE Paris - Growing an API Culture by Saul Caganoff & Liz Douglass
apidays
 
apidays LIVE Australia 2020 - Growing an API Culture by Liz Douglass & Saul C...
apidays LIVE Australia 2020 - Growing an API Culture by Liz Douglass & Saul C...apidays LIVE Australia 2020 - Growing an API Culture by Liz Douglass & Saul C...
apidays LIVE Australia 2020 - Growing an API Culture by Liz Douglass & Saul C...
apidays
 
Growing an API Culture - APIdays LIVE AU 2020
Growing an API Culture - APIdays LIVE AU 2020Growing an API Culture - APIdays LIVE AU 2020
Growing an API Culture - APIdays LIVE AU 2020
Saul Caganoff
 
Thorsignia - Custom software development services in india
Thorsignia - Custom software development services in indiaThorsignia - Custom software development services in india
Thorsignia - Custom software development services in india
charan Teja
 
Software Engineering Process in Web Application Development
Software Engineering Process in Web Application DevelopmentSoftware Engineering Process in Web Application Development
Software Engineering Process in Web Application Development
IOSR Journals
 
D017152832
D017152832D017152832
D017152832
IOSR Journals
 
Mining Testing Questions on Stack Overflow
Mining Testing Questions on Stack OverflowMining Testing Questions on Stack Overflow
Mining Testing Questions on Stack Overflow
Pavneet Singh Kochhar
 
What Is The Mobile App Development Cost In India.pdf
What Is The Mobile App Development Cost In India.pdfWhat Is The Mobile App Development Cost In India.pdf
What Is The Mobile App Development Cost In India.pdf
Laura Miller
 
Mobile Apps Performance Testing Using Open Source Tool JMeter
Mobile Apps Performance Testing Using Open Source Tool JMeterMobile Apps Performance Testing Using Open Source Tool JMeter
Mobile Apps Performance Testing Using Open Source Tool JMeter
Devendra Singh
 
Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
 Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
Techugo
 
Data Science for Online Services: Problems & Frontiers (Changbal Conference 2...
Data Science for Online Services: Problems & Frontiers (Changbal Conference 2...Data Science for Online Services: Problems & Frontiers (Changbal Conference 2...
Data Science for Online Services: Problems & Frontiers (Changbal Conference 2...
Jin Young Kim
 
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
NITHIN S.S
 
Tizen Developer Conference 2014
Tizen Developer Conference 2014 Tizen Developer Conference 2014
Tizen Developer Conference 2014
appbackr
 

Similar to What are the Characteristics of High-rated Apps (20)

End Users’ Perception of Hybrid Mobile Apps in the Google Play Store
End Users’ Perception of Hybrid Mobile Apps in the Google Play StoreEnd Users’ Perception of Hybrid Mobile Apps in the Google Play Store
End Users’ Perception of Hybrid Mobile Apps in the Google Play Store
 
React Native Market Overview for Cross-Platform App Development.pdf
React Native Market Overview for Cross-Platform App Development.pdfReact Native Market Overview for Cross-Platform App Development.pdf
React Native Market Overview for Cross-Platform App Development.pdf
 
React Native App Development.
React Native App Development.React Native App Development.
React Native App Development.
 
Practical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User MonitoringPractical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User Monitoring
 
Sunil_Personal
Sunil_PersonalSunil_Personal
Sunil_Personal
 
[2015/2016] Mobile thinking
[2015/2016] Mobile thinking[2015/2016] Mobile thinking
[2015/2016] Mobile thinking
 
Hard work matters for everyone in everytbing
Hard work matters for everyone in everytbingHard work matters for everyone in everytbing
Hard work matters for everyone in everytbing
 
apidays LIVE Paris - Growing an API Culture by Saul Caganoff & Liz Douglass
apidays LIVE Paris - Growing an API Culture by Saul Caganoff & Liz Douglassapidays LIVE Paris - Growing an API Culture by Saul Caganoff & Liz Douglass
apidays LIVE Paris - Growing an API Culture by Saul Caganoff & Liz Douglass
 
apidays LIVE Australia 2020 - Growing an API Culture by Liz Douglass & Saul C...
apidays LIVE Australia 2020 - Growing an API Culture by Liz Douglass & Saul C...apidays LIVE Australia 2020 - Growing an API Culture by Liz Douglass & Saul C...
apidays LIVE Australia 2020 - Growing an API Culture by Liz Douglass & Saul C...
 
Growing an API Culture - APIdays LIVE AU 2020
Growing an API Culture - APIdays LIVE AU 2020Growing an API Culture - APIdays LIVE AU 2020
Growing an API Culture - APIdays LIVE AU 2020
 
Thorsignia - Custom software development services in india
Thorsignia - Custom software development services in indiaThorsignia - Custom software development services in india
Thorsignia - Custom software development services in india
 
Software Engineering Process in Web Application Development
Software Engineering Process in Web Application DevelopmentSoftware Engineering Process in Web Application Development
Software Engineering Process in Web Application Development
 
D017152832
D017152832D017152832
D017152832
 
Mining Testing Questions on Stack Overflow
Mining Testing Questions on Stack OverflowMining Testing Questions on Stack Overflow
Mining Testing Questions on Stack Overflow
 
What Is The Mobile App Development Cost In India.pdf
What Is The Mobile App Development Cost In India.pdfWhat Is The Mobile App Development Cost In India.pdf
What Is The Mobile App Development Cost In India.pdf
 
Mobile Apps Performance Testing Using Open Source Tool JMeter
Mobile Apps Performance Testing Using Open Source Tool JMeterMobile Apps Performance Testing Using Open Source Tool JMeter
Mobile Apps Performance Testing Using Open Source Tool JMeter
 
Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
 Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
Why React Native Apps Outperform Hybrid Apps: Advantages and Benefits
 
Data Science for Online Services: Problems & Frontiers (Changbal Conference 2...
Data Science for Online Services: Problems & Frontiers (Changbal Conference 2...Data Science for Online Services: Problems & Frontiers (Changbal Conference 2...
Data Science for Online Services: Problems & Frontiers (Changbal Conference 2...
 
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...
 
Tizen Developer Conference 2014
Tizen Developer Conference 2014 Tizen Developer Conference 2014
Tizen Developer Conference 2014
 

More from SAIL_QU

Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...
SAIL_QU
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
SAIL_QU
 
Improving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load testsImproving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load tests
SAIL_QU
 
Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...
SAIL_QU
 
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
SAIL_QU
 
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
SAIL_QU
 
Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...
SAIL_QU
 
Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?
SAIL_QU
 
Towards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log ChangesTowards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log Changes
SAIL_QU
 
The Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution AnalysesThe Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution Analyses
SAIL_QU
 
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
SAIL_QU
 
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
SAIL_QU
 
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
SAIL_QU
 
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
SAIL_QU
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
SAIL_QU
 
What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?
SAIL_QU
 
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
SAIL_QU
 
Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...
SAIL_QU
 
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with ProfessionalsMeasuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
SAIL_QU
 
On the Unreliability of Bug Severity Data
On the Unreliability of Bug Severity DataOn the Unreliability of Bug Severity Data
On the Unreliability of Bug Severity Data
SAIL_QU
 

More from SAIL_QU (20)

Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...Studying the Integration Practices and the Evolution of Ad Libraries in the G...
Studying the Integration Practices and the Evolution of Ad Libraries in the G...
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
 
Improving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load testsImproving the testing efficiency of selenium-based load tests
Improving the testing efficiency of selenium-based load tests
 
Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...Studying User-Developer Interactions Through the Distribution and Reviewing M...
Studying User-Developer Interactions Through the Distribution and Reviewing M...
 
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
Understanding the Factors for Fast Answers in Technical Q&A Websites: An Empi...
 
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
Investigating the Challenges in Selenium Usage and Improving the Testing Effi...
 
Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...Mining Development Knowledge to Understand and Support Software Logging Pract...
Mining Development Knowledge to Understand and Support Software Logging Pract...
 
Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?Which Log Level Should Developers Choose For a New Logging Statement?
Which Log Level Should Developers Choose For a New Logging Statement?
 
Towards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log ChangesTowards Just-in-Time Suggestions for Log Changes
Towards Just-in-Time Suggestions for Log Changes
 
The Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution AnalysesThe Impact of Task Granularity on Co-evolution Analyses
The Impact of Task Granularity on Co-evolution Analyses
 
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
A Framework for Evaluating the Results of the SZZ Approach for Identifying Bu...
 
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
How are Discussions Associated with Bug Reworking? An Empirical Study on Open...
 
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
A Study of the Relation of Mobile Device Attributes with the User-Perceived Q...
 
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
A Large-Scale Study of the Impact of Feature Selection Techniques on Defect C...
 
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...Studying the Dialogue Between Users and Developers of Free Apps in the Google...
Studying the Dialogue Between Users and Developers of Free Apps in the Google...
 
What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?What Do Programmers Know about Software Energy Consumption?
What Do Programmers Know about Software Energy Consumption?
 
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
Threshold for Size and Complexity Metrics: A Case Study from the Perspective ...
 
Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...Revisiting the Experimental Design Choices for Approaches for the Automated R...
Revisiting the Experimental Design Choices for Approaches for the Automated R...
 
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with ProfessionalsMeasuring Program Comprehension: A Large-Scale Field Study with Professionals
Measuring Program Comprehension: A Large-Scale Field Study with Professionals
 
On the Unreliability of Bug Severity Data
On the Unreliability of Bug Severity DataOn the Unreliability of Bug Severity Data
On the Unreliability of Bug Severity Data
 

Recently uploaded

Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 

Recently uploaded (20)

Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 

What are the Characteristics of High-rated Apps

  • 1. What Are the Characteristics of High-rated Apps? A Case Study on Free Android Applications David LoYuan Tian Meiyappan Nagappan Ahmed E. Hassan
  • 2. Dramatic mobile app market & mobile app usage growth in recent years. “ ” In 2012 the app economy was worth $53Bn and is expected to expand at a 28% CAGR up to 2016, reaching $143Bn. 2
  • 3. Mobile app market is attractive, however building a successful app is hard. Highly Competitive: With other 50,000 apps in the app store 3 Limited Chance: Smartphone users stick to limited mobile apps.
  • 4. How to make a successful app? - Let’s contrast high- and low-rated apps!
  • 5. Prior Studies • Bavota et al. find that low-rated apps have method calls to APIs that are more change or fault prone. (Bavota et al., TSE 2015) • Taba et al. find that low-rated apps have more complex user interface. (Taba et al., ICWE 2014) • Chia et al. find that number of required permissions impacts app ratings (Chia et al. WWW 2012) • Many other studies. 5
  • 6. This Study • Consider a comprehensive set of factors that may impact app ratings instead of only a few. ‒ Consider existing factors ‒ Plus additional factors not considered before • Compare the relative importance of each of the factors on app ratings ‒ In predicting high-rated and low-rated apps ‒ On a reasonably large dataset of more than 1000 apps 6
  • 7. Agenda 7 • Motivation • Factors • Case study • Discussion • Conclusion
  • 8. We analyze 28 factors in 8 dimensions Cate- gory App Size Code. Comp. Library Depend. Library Quality UI Comp. User Req. Market- ing 8
  • 9. App Size Dimension Why App Size? + Large code => richer functionality - Larger code => higher chance for bugs (Zimmermann, 2007) 9 Cate- gory App Size Code. Comp. Library Depend. Library Quality UI Comp. User Req. Market- ing
  • 10. 10 Why Code Complexity? + More complex code => more advanced functionality - More complex code => more bugs (Subramanyam, 2003) Cate- gory App Size Code. Comp. Library Depend. Library Quality UI Comp. User Req. Market- ing Code Complexity Dimension
  • 11. 11 Why Library Dependence? + Higher dependence => richer functionality built upon third party code - Higher dependence => difficulty to keep up with library evolution, which results in bugs. (Syer, 2014) Cate- gory App Size Code. Comp. Library Depend. Library Quality UI Comp. User Req. Market- ing Library Dependence Dimension
  • 12. 12 Why Library Quality? - Buggy library code => buggy apps built on top of them. - Frequently changed libraries => bugs if apps are not properly maintained Cate- gory App Size Code. Comp. Library Depend. Library Quality UI Comp. User Req. Market- ing Library Quality Dimension
  • 13. 13 Why UI Complexity? - More complex UI => app is harder to use. + More complex UI => more functionality. Cate- gory App Size Code. Comp. Library Depend. Library Quality UI Comp. User Req. Market- ing UI Complexity Dimension
  • 14. 14 Why User Requirements? + Larger target SDK version => incorporation of latest feature, active maintenance effort. + Number of permission request => more features. - Number of permission request => privacy risk. User Requirement Dimension Cate- gory App Size Code. Comp. Library Depend. Library Quality UI Comp. User Req. Market- ing
  • 15. 15 Why Marketing Effort? + More marketing effort => better first impression, more functionality. Marketing Dimension Cate- gory App Size Code. Comp. Library Depend. Library Quality UI Comp. User Req. Market- ing
  • 16. 16 Why Category? Different category => different user expectation. Category Dimension Cate- gory App Size Code. Comp. Library Depend. Library Quality UI Comp. User Req. Market- ing
  • 17. Factors in App Size Dimension • Binary size of the APK file (measured in KB) Install Size • Total number of classes (including library code). Total classes • Total number of app specific classes. App classes • Total number of activities defined in the AndroidManifest.xml file. # Activities • Total number of services defined in the AndroidManifest.xml file. # Services 17
  • 18. Factors in Code Complexity Dimension • Chidamber and Kemerer’s object oriented complexity metrics, e.g., the number of methods in each class. • Note that we compute the mean over all classes in each app. Six CK metrics • Mean of the number of other classes that depend upon each class. Afferent coupling • Mean of the number of public methods in each class. Number of public methods 18
  • 19. Factors in Library Dependence Dimension • Total number of (percentage of) calls to libraries that start with “android.”. Absolute (percentage) dependence on Android • Total number of (percentage of) calls to third party libraries. 19 Absolute (percentage) dependence on third party libraries
  • 20. Factors in Library Quality Dimension • Mean number of methods changed in used Android APIs (Bavota et al. 2015) Change of used Android APIs • Mean number of bugs in the used Android APIs (Bavota et al. 2015) Faultiness of used Android API 20
  • 21. Factors in UI Complexity Dimension • Mean number of input elements per layout. Input elements per layout • Mean number of output elements per layout. Output elements per layout 21
  • 22. 22 Factors in User Requirements Dimension • The minimum SDK version required for the app to run. Minimum SDK version • The SDK version that the app targets. If not set, the default value equals to minSDK. Target SDK version • Number of required features from user’s device (e.g., camera). Required device features • Number of permissions needed from user. Required user permission
  • 23. Factors in Marketing Effort Dimension • Number of words appearing in the description of the app in its Play Store page. Length of description • Number of images shown on the app’s store page. Promotional images 23
  • 24. 24 All the factors could be calculated by using tools including: ApkTool, dex2jar, BCEL based on app apk and info on app store.
  • 25. 25 Meta Data Extract: Category, Size Rating, Rating Count Google Play Extract: Marketing Extract: Size APKs ApkTool AndroidManifest Files, Resource Extract: Requirements on Users, UI BCEL dex2jar Extract: Code Complexity, Library Dependence, quality of library Code Jars Android API Change and Bug Logs Step 1 Step 2 Step 3
  • 26. 26 Meta Data Extract : Marketing Extract : Category, Size Rating, Rating Count Google Play Step 1
  • 27. 27 Extract: Size Step 2 APKsApkTool AndroidManifest Files, Resource Extract: Requirements on Users, UI
  • 28. 28 BCEL Step 3 APKs dex2jar Extract: Code Complexity, Library Dependence, quality of library Code JarsExtract: Size Android API Change and Bug Logs
  • 29. Our case study is done on 1,492 android apps: 29 Step 1: Randomly selected and crawled 10,000 apps. Step 2: Filter out apps that: ‒ Have less than 10 ratings ‒ Could not be processed by our tools Step 3: Sort apps in each category by their ratings. Select the top 10% (high-rated) and bottom 10% (low-rated) apps.
  • 30. Research Questions RQ2: What are the important factors that could be used to predict app ratings? RQ1: Is there a relationship between each factor an app rating? 30
  • 31. 31 RQ1: Relation between factors and rating • Compare the values of each factor between high-rated and low rated apps. • Analyze the statistical significance and effect size of the difference between the two groups of apps. ‒ Use Mann-Whitney U test at p-value of 0.01. ‒ Compute Cliff’s Delta (or d).
  • 33. RQ1: Summary of Findings High-rated apps are statistically significantly different from low-rated apps in 17 out of the 28 factors. Generally, high-rated apps are larger with more complex code, more preconditions, more marketing efforts, more dependence on libraries, and they make use of higher quality Android libraries. 33
  • 34. 34 RQ2: Important factors for prediction • Remove highly correlated factors • Remove redundant factors • Use random forest ‒ Ten fold cross validation ‒ Measure performance in terms of F1 and AUC ‒ Repeat the process with different factors omitted • Employ Scott-Knott test ‒ Identify groups of factors that are statistically significantly different from one another
  • 35. The RF model could achieve: F-measure of 0.74 + AUC of 0.81 RQ2: Important factors for prediction 35 Top-3 Size of the app # Promotional Images Target SDK RQ2: Important factors for prediction
  • 36. RQ2: Summary of Findings The size of an app, the number of promotional images on its store page, and the target SDK are the three most influential factors in determining the likelihood of an app being a high rated app. 36
  • 37. Discussion: Comparison with Past Findings • Reinforce findings by Bavota et al. (TSE’15) ‒ API quality influence rating ‒ However, it is not the most important factors (#5) • Refute findings by Taba et al. (ICWE’14) ‒ UI complexity is not statistically significantly related with app ratings. • Reinforce findings by Chia et a. et al. (WWW’12) ‒ # required permission is weakly associated with rating • Highlight additional factors: app size, promotion effort, target sdk. 37
  • 38. Discussion: Power of Multi-Factor Analysis 0 0.2 0.4 0.6 0.8 Precision Recall F-measure All Size Code Complexity Dependence Library Quality UI Complexity Requirement on User Marketing Category 38 Single dimension factors are not enough to successfully differentiate high-rated from low-rated apps. 0.7
  • 39. 39
  • 40. 40 Future Work • Explore additional factors • Do a more fine-grained study (individual category) • Employ a causality analysis to get a deeper understanding • Interview Android app developers to get their insight