Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2491411.2491428acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

API change and fault proneness: a threat to the success of Android apps

Published: 18 August 2013 Publication History

Abstract

During the recent years, the market of mobile software applications (apps) has maintained an impressive upward trajectory. Many small and large software development companies invest considerable resources to target available opportunities. As of today, the markets for such devices feature over 850K+ apps for Android and 900K+ for iOS. Availability, cost, functionality, and usability are just some factors that determine the success or lack of success for a given app. Among the other factors, reliability is an important criteria: users easily get frustrated by repeated failures, crashes, and other bugs; hence, abandoning some apps in favor of others.
This paper reports a study analyzing how the fault- and change-proneness of APIs used by 7,097 (free) Android apps relates to applications' lack of success, estimated from user ratings. Results of this study provide important insights into a crucial issue: making heavy use of fault- and change-prone APIs can negatively impact the success of these apps.

References

[1]
M. Assaduzzaman, M. Bullock, C. Roy, and K. Schneider. Bug Introducing Changes: A Case Study with Android. In Proceedings of the 9th IEEE Working Conference on Mining Software Repositories, Zurich, Switzerland, pp. 116–119. IEEE Press, 2012.
[2]
C. Bird, A. Bachmann, E. Aune, J. Duffy, A. Bernstein, V. Filkov, and P. T. Devanbu. Fair and Balanced?: Bias in Bug-fix Datasets. In Proceedings of the 7th joint meeting of the European Software Engineering Conference and the ACM SIGSOFT International Symposium on Foundations of Software Engineering, Amsterdam, The Netherlands, pp. 121–130. ACM Press, 2009.
[3]
M. L. Collard, H. H. Kagdi, and J. I. Maletic. An XML-based Lightweight C++ Fact Extractor. In Proceedings of the 11th International Workshop on Program Comprehension, Portland, Oregon, USA, pp. 134–143. IEEE Computer Society Press, 2003.
[4]
W. J. Conover. Practical Nonparametric Statistics. Wiley, 3rd edition edition, 1998.
[5]
B. Dagenais and M. P. Robillard. Recommending Adaptive Changes for Framework Evolution. In Proceedings of the 30th International Conference on Software Engineering, Leipzig, Germany, pp. 481–490. ACM Press, 2008.
[6]
J. Davies, D. M. German, M. W. Godfrey, and A. Hindle. Software Bertillonage Determining the Provenance of Software Development Artifacts. Empirical Software Engineering Journal, 2012.
[7]
J. Davies, D. M. German, M. W. Godfrey, and A. J. Hindle. Software Bertillonage: Finding the Provenance of an Entity. In Proceedings of the 8th IEEE Working Conference on Mining Software Repositories, Honolulu, Hawaii, pp. 183–192. IEEE Press, 2011.
[8]
D. Dig and R. Johnson. How Do APIs Evolve? A Story of Refactoring. Journal of Software Maintenance and Evolution: Research and Practice, 18:83–107, 2006.
[9]
A. Dresnos. Android : Static Analysis using Similarity Distance. In Proceedings of the 45th Hawaii International Conference on System Sciences, pp. 5394–5403, 2012.
[10]
M. Fischer, M. Pinzger, and H. Gall. Populating a Release History Database from Version Control and Bug Tracking Systems. In Proceedings of the 19th International Conference on Software Maintenance, Amsterdam, The Netherlands, pp. 23–32. IEEE Press, 2003.
[11]
R. J. Grissom and J. J. Kim. Effect Sizes for Research: A Broad Practical Approach. Lawrence Earlbaum Associates, 2nd edition, 2005.
[12]
S. Holm. A Simple Sequentially Rejective Bonferroni Test Procedure. Scandinavian Journal on Statistics, 6:65–70, 1979.
[13]
D. Hou and X. Yao. Exploring the Intent Behind API Evolution: A Case Study. In Proceedings of the 18th Working Conference on Reverse Engineering, Limerick, Ireland, pp. 131–140. IEEE Press, 2011.
[14]
L. Martie, V. Palepu, H. Sajnani, and C. Lopes. Trendy Bugs: Topic Trends in the Android Bug Reports. In Proceedings of the 9th IEEE Working Conference on Mining Software Repositories, Zurich, Switzerland, pp. 120–123. IEEE Press, 2012.
[15]
J. Mayrand, C. Leblanc, and E. Merlo. Experiment on the Automatic Detection of Function Clones in a Software System using Metrics. In Proceedings of the 12th International Conference on Software Maintenance, Monterey, CA, USA, pp. 244–253. IEEE Computer Society Press, 1996.
[16]
Y. Mileva, V. Dallmeier, M. Burger, and A. Zeller. Mining Trends of Library Usage. In Proceedings of the Joint International and Annual ERCIM Workshops on Principles of Software Evolution and Software Evolution Workshops, Amsterdam, The Netherlands, pp. 57–62. IEEE 2009.
[17]
I. Mojica Ruiz, M. Nagappan, B. Adams, and A. Hassan. Understanding Reuse in the Android Market. In Proceedings of the 20th IEEE International Conference on Program Comprehension, Passau, Bavaria, Germany, pp. 113–122. IEEE Press 2012.
[18]
S. Raemaekers, A. van Deursen, and J. Visser. Measuring Software Library Stability through Historical Version Analysis. In Proceedings of the 8th IEEE International Conference on Software Maintenance, Riva del Garda, Trento, Italy, pp. 378–387. IEEE Press 2012.
[19]
M. Robillard and R. DeLine. A Field Study of API Learning Obstacles. Empirical Software Engineering Journal, 16:703–732, 2012.
[20]
M. P. Robillard and G. C. Murphy. Designing Robust Java Programs with Exceptions. In Proceedings of the 8th ACM SIGSOFT International Symposium on Foundations of Software Engineering: Twenty-first Century Applications, San Diego, CA, USA, pp. 2–10. ACM Press 2000.
[21]
B. Sanz, I. Santos, C. Laorden, X. Ugarte-Pedrero, and P. Bringas. On the Automatic Categorization of Android Applications. In Proceedings of the 2012 IEEE Consumer Communications and Networking Conference, Las Vegas, Nevada, USA, pp. 149–153. IEEE Press 2012.
[22]
A. Shabtai, Y. Fledel, and Y. Elovici. Automated Static Code Analysis for Classifying Android Applications using Machine Learning. In Proceedings of the 2010 International Conference on Computational Intelligence and Security, Nanning, China, pp. 329–333. CPS, 2010.
[23]
E. Shihab, Y. Kamei, and P. Bhattacharya. Mining Challenge 2012: The Android Platform. In Proceedings of the 9th IEEE Working Conference on Mining Software Repositories, Zurich, Switzerland, pp. 112–115. IEEE Press, 2012.
[24]
V. Sinha, S. Mani, and M. Gupta. Mince: Mining Change History of Android Project. In Proceedings of the 9th IEEE Working Conference on Mining Software Repositories, Zurich, Switzerland, pp. 132–135. IEEE Press, 2012.
[25]
D. Syer, B. Adams, Y. Zou, and A. Hassan. Exploring the Development of Micro-Apps: A Case Study on the Blackberry and Android Platforms. In Proceedings of the 11th IEEE International Working Conference on Source Code Analysis and Manipulation, Williamsburg, VA, USA, pp. 55–64. IEEE Press, 2011.
[26]
VisionMobile. The New Mobile App Economy (Developer Economics 2012), 2012.
[27]
VisionMobile. Developer Tools: The Foundations of the App Economy (Developer Economics 2013), 2013.
[28]
M. Zibran. What Makes APIs Difficult to Use? International Journal of Computer Science and Network Security, 8(4):255–261, 2008.
[29]
M. Zibran, F. Eishita, and C. Roy. Useful, but Usable? Factors Affecting the Usability of APIs. In Proceedings of the 18th Working Conference on Reverse Engineering, Limerick, Ireland, pp. 151–155. IEEE Press, 2011.

Cited By

View all
  • (2025)From guidelines to practice: assessing Android app developer compliance with google’s security recommendationsEmpirical Software Engineering10.1007/s10664-024-10559-030:1Online publication date: 1-Feb-2025
  • (2024)GuiEvo: Automated Evolution of Mobile App UIsProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3644936(335-347)Online publication date: 15-Apr-2024
  • (2024)Measuring and Characterizing (Mis)compliance of the Android Permission SystemIEEE Transactions on Software Engineering10.1109/TSE.2024.336292150:4(742-764)Online publication date: Apr-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ESEC/FSE 2013: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
August 2013
738 pages
ISBN:9781450322379
DOI:10.1145/2491411
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 18 August 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. API changes
  2. Android
  3. Empirical Studies
  4. Mining Software Repositories

Qualifiers

  • Research-article

Conference

ESEC/FSE'13
Sponsor:

Acceptance Rates

Overall Acceptance Rate 112 of 543 submissions, 21%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)32
  • Downloads (Last 6 weeks)3
Reflects downloads up to 09 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2025)From guidelines to practice: assessing Android app developer compliance with google’s security recommendationsEmpirical Software Engineering10.1007/s10664-024-10559-030:1Online publication date: 1-Feb-2025
  • (2024)GuiEvo: Automated Evolution of Mobile App UIsProceedings of the 21st International Conference on Mining Software Repositories10.1145/3643991.3644936(335-347)Online publication date: 15-Apr-2024
  • (2024)Measuring and Characterizing (Mis)compliance of the Android Permission SystemIEEE Transactions on Software Engineering10.1109/TSE.2024.336292150:4(742-764)Online publication date: Apr-2024
  • (2024)Beyond the Horizon: Exploring Cross-Market Security Discrepancies in Parallel Android Apps2024 IEEE 35th International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE62328.2024.00059(558-569)Online publication date: 28-Oct-2024
  • (2024)Aurora: Navigating UI Tarpits via Automated Neural Screen Understanding2024 IEEE Conference on Software Testing, Verification and Validation (ICST)10.1109/ICST60714.2024.00028(221-232)Online publication date: 27-May-2024
  • (2024)Ten Years of Teaching Empirical Software Engineering in the Context of Energy-Efficient SoftwareHandbook on Teaching Empirical Software Engineering10.1007/978-3-031-71769-7_8(209-253)Online publication date: 25-Dec-2024
  • (2023)An Intelligent Platform for Software Component Mining and RetrievalSensors10.3390/s2301052523:1(525)Online publication date: 3-Jan-2023
  • (2023)Automatically Detecting Incompatible Android APIsACM Transactions on Software Engineering and Methodology10.1145/362473733:1(1-33)Online publication date: 23-Nov-2023
  • (2023)Transparent Runtime Change Handling for Android AppsProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3582016.3582060(756-770)Online publication date: 25-Mar-2023
  • (2023)Detecting Android API Compatibility Issues With API DifferencesIEEE Transactions on Software Engineering10.1109/TSE.2023.327415349:7(3857-3871)Online publication date: Jul-2023
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media