Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3377812.3382124acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Bridging the divide between API users and API developers by mining public code repositories

Published: 01 October 2020 Publication History

Abstract

Software application programming interfaces (APIs) are a ubiquitous part of Software Engineering. The evolution of these APIs requires constant effort from their developers and users alike. API developers must constantly balance keeping their products modern whilst keeping them as stable as possible. Meanwhile, API users must continually be on the lookout to adapt to changes that could break their applications. As APIs become more numerous, users are challenged by a myriad of choices and information on which API to use. Current research attempts to provide automatic documentation, code examples, and code completion to make API evolution more scalable for users. Our work will attempt to establish practical and scalable API evolution guidelines and tools based on public code repositories, to aid both API users and API developers.
This thesis focuses on investigating the use of public code repositories provided by the open-source community to improve software API engineering practices. More specifically, I seek to improve software engineering practices linked to API evolution, both from the perspective of API users and API developers. To achieve this goal, I will apply quantitative and qualitative research methods to understand the problems at hand. I will then mine public code repositories to develop novel solutions to these problems.

References

[1]
A. T. Nguyen, M. Hilton, M. Codoban, H. A. Nguyen, L. Mast, E. Rademacher, T. N. Nguyen, and D. Dig, "Api code recommendation using statistical learning from fine-grained changes," Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering - FSE 2016, 2016.
[2]
C. Bogart, C. Kästner, J. Herbsleb, and F. Thung, "How to break an api: Cost negotiation and community values in three software ecosystems," in Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016, (New York, NY, USA), pp. 109--120, ACM, 2016.
[3]
D. Dig and R. Johnson, "How do apis evolve? a story of refactoring," Journal of Software: Evolution and Process, vol. 18, no. 2, pp. 83--107, 2006.
[4]
B. Dagenais and M. P. Robillard, "Recovering traceability links between an api and its learning resources," 2012 34th International Conference on Software Engineering (ICSE), 2012.
[5]
A. Potdar and E. Shihab, "An exploratory study on self-admitted technical debt," in Proceedings of the 30th IEEE International Conference on Software Maintenance and Evolution (ICSME'14), pp. 91--100, 2014.
[6]
B. E. Cossette and R. J. Walker, "Seeking the ground truth: A retroactive study on the evolution and migration of software libraries," in Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE '12, (New York, NY, USA), pp. 55:1--55:11, ACM, 2012.
[7]
S. Amann, H. A. Nguyen, S. Nadi, T. N. Nguyen, and M. Mezini, "Investigating next steps in static api misuse detection," in Proceedings of the 16th International Conference on Mining Software Repositories, MSR 19, pp. 265--275, 2019.
[8]
M. Lamothe and W. Shang, "Exploring the use of automated api migrating techniques in practice: An experience report on android," MSR '18: 15th International Conference on Mining Software Repositories, 2018.
[9]
B. Dagenais and M. P. Robillard, "Recommending adaptive changes for framework evolution," ACM Transactions on Software Engineering and Methodology, vol. 20, no. 4, pp. 1--35, 2011.
[10]
M. P. Robillard, A. Marcus, C. Treude, G. Bavota, O. Chaparro, N. Ernst, M. A. Gerosa, M. Godfrey, M. Lanza, M. Linares-Vasquez, and et al., "On-demand developer documentation," 2017 IEEE International Conference on Software Maintenance and Evolution, 2017.
[11]
T. D. Nguyen, A. T. Nguyen, and T. N. Nguyen, "Mapping api elements for code migration with vector representations," in Proceedings of the 38th International Conference on Software Engineering Companion, ICSE '16, pp. 756--758, 2016.
[12]
T. Mcdonnell, B. Ray, and M. Kim, "An empirical study of api stability and adoption in the android ecosystem," 2013 IEEE International Conference on Software Maintenance, 2013.
[13]
A. A. Sawant, R. Robbes, and A. Bacchelli, "On the reaction to deprecation of clients of 4 + 1 popular Java APIs and the JDK," Empirical Software Engineering, pp. 1--40, 2017.
[14]
M. P. Robillard, W. Maalej, R. J. Walker, and T. Zimmermann, eds., Recommendation Systems in Software Engineering. Springer Berlin Heidelberg, 2014.
[15]
G. Bavota, G. Canfora, M. Di Penta, R. Oliveto, and S. Panichella, "How the apache community upgrades dependencies: An evolutionary study," Empirical Softw. Engg., vol. 20, pp. 1275--1317, Oct. 2015.
[16]
M. Lamothe and W. Shang, "When apis are intentionally bypassed: An exploratory study of api workarounds," in Proceedings. 42nd International Conference on Software Engineering, ICSE 2020, 2020.
[17]
M. Kim, "LASE: Locating and Applying Systematic Edits by Learning from Examples," ICSE, pp. 502--511, 2013.
[18]
T. Zhang, D. Yang, C. Lopes, and M. Kim, "Analyzing and supporting adaptation of online code examples," in 41st International Conference on Software Engineering, ICSE '19, (Piscataway, NJ, USA), pp. 316--327, IEEE Press, 2019.
[19]
T. Apiwattanapong, A. Orso, and M. J. Harrold, "Jdiff: A differencing technique and tool for object-oriented programs," Automated Software Engineering, vol. 14, no. 1, pp. 3--36, 2006.
[20]
E. L. Glassman, T. Zhang, B. Hartmann, and M. Kim, "Visualizing api usage examples at scale," in Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems, CHI '18, (New York, NY, USA), pp. 580:1--580:12, ACM, 2018.
[21]
S. Scalabrino, G. Bavota, M. Linares-Vásquez, M. Lanza, and R. Oliveto, "Data-driven solutions to detect api compatibility issues in android: An empirical study," in Proceedings of the 16th International Conference on Mining Software Repositories, MSR '19, (Piscataway, NJ, USA), pp. 288--298, IEEE Press, 2019.
[22]
P. T. Nguyen, J. Di Rocco, D. Di Ruscio, L. Ochoa, T. Degueule, and M. Di Penta, "Focus: A recommender system for mining api function calls and usage patterns," in Proceedings of the 41st International Conference on Software Engineering, ICSE '19, (Piscataway, NJ, USA), pp. 1050--1060, IEEE Press, 2019.

Cited By

View all
  • (2023)Reduce API Debugging Overhead via Knowledge PrepositioningCompanion Proceedings of the ACM Web Conference 202310.1145/3543873.3587311(57-60)Online publication date: 30-Apr-2023

Index Terms

  1. Bridging the divide between API users and API developers by mining public code repositories
        Index terms have been assigned to the content through auto-classification.

        Recommendations

        Comments

        Please enable JavaScript to view thecomments powered by Disqus.

        Information & Contributors

        Information

        Published In

        cover image ACM Conferences
        ICSE '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Companion Proceedings
        June 2020
        357 pages
        ISBN:9781450371223
        DOI:10.1145/3377812
        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

        In-Cooperation

        • KIISE: Korean Institute of Information Scientists and Engineers
        • IEEE CS

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        Published: 01 October 2020

        Permissions

        Request permissions for this article.

        Check for updates

        Qualifiers

        • Research-article

        Conference

        ICSE '20
        Sponsor:

        Acceptance Rates

        Overall Acceptance Rate 276 of 1,856 submissions, 15%

        Upcoming Conference

        ICSE 2025

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)17
        • Downloads (Last 6 weeks)2
        Reflects downloads up to 01 Oct 2024

        Other Metrics

        Citations

        Cited By

        View all
        • (2023)Reduce API Debugging Overhead via Knowledge PrepositioningCompanion Proceedings of the ACM Web Conference 202310.1145/3543873.3587311(57-60)Online publication date: 30-Apr-2023

        View Options

        Get Access

        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