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

skip to main content
10.1145/3368089.3409711acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Selecting third-party libraries: the practitioners’ perspective

Published: 08 November 2020 Publication History

Abstract

The selection of third-party libraries is an essential element of virtually any software development project. However, deciding which libraries to choose is a challenging practical problem. Selecting the wrong library can severely impact a software project in terms of cost, time, and development effort, with the severity of the impact depending on the role of the library in the software architecture, among others. Despite the importance of following a careful library selection process, in practice, the selection of third-party libraries is still conducted in an ad-hoc manner, where dozens of factors play an influential role in the decision.
In this paper, we study the factors that influence the selection process of libraries, as perceived by industry developers. To that aim, we perform a cross-sectional interview study with 16 developers from 11 different businesses and survey 115 developers that are involved in the selection of libraries. We systematically devised a comprehensive set of 26 technical, human, and economic factors that developers take into consideration when selecting a software library. Eight of these factors are new to the literature. We explain each of these factors and how they play a role in the decision. Finally, we discuss the implications of our work to library maintainers, potential library users, package manager developers, and empirical software engineering researchers.

Supplementary Material

Auxiliary Teaser Video (fse20main-p316-p-teaser.mp4)
The selection of third-party libraries is an essential element of virtually any software development project. However, deciding which libraries to choose is a challenging practical problem. Selecting the wrong library can severely impact a software project in terms of cost, time, and development effort. Despite the importance of following a careful library selection process, in practice, the selection of third-party libraries is still conducted in an ad-hoc manner, where dozens of factors play an influential role in the decision. In our study, we systematically devised a comprehensive set of 26 technical, human, and economic factors that developers take into consideration when selecting a software library. We explain each of these factors and how they play a role in the decision.
Auxiliary Presentation Video (fse20main-p316-p-video.mp4)
The selection of third-party libraries is an essential element of virtually any software development project. However, deciding which libraries to choose is a challenging practical problem. Selecting the wrong library can severely impact a software project in terms of cost, time, and development effort. Despite the importance of following a careful library selection process, in practice, the selection of third-party libraries is still conducted in an ad-hoc manner, where dozens of factors play an influential role in the decision. In our study, we systematically devised a comprehensive set of 26 technical, human, and economic factors that developers take into consideration when selecting a software library. We explain each of these factors and how they play a role in the decision.

References

[1]
Rabe Abdalkareem, Olivier Nourry, Sultan Wehaibi, Suhaib Mujahid, and Emad Shihab. 2017. Why Do Developers Use Trivial Packages? An Empirical Case Study on Npm. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering (Paderborn, Germany) (ESEC/FSE 2017 ). Association for Computing Machinery, New York, NY, USA, 385-395. https://doi.org/10.1145/ 3106237.3106267
[2]
David Arnott. 2005. Cognitive biases and decision support systems development: a design science approach. Information Systems Journal 16, 1 ( 2018 /09/28 2005), 55-78. https://doi.org/10.1111/j.1365-2575. 2006. 00208.x
[3]
John W Creswell. 2013. Research design: Qualitative, quantitative, and mixed methods approaches. Sage publications.
[4]
Fernando López de la Mora and Sarah Nadi. 2018. An Empirical Study of Metricbased Comparisons of Software Libraries. In Proceedings of the 14th International Conference on Predictive Models and Data Analytics in Software Engineering (Oulu, Finland) (PROMISE'18). ACM, New York, NY, USA, 22-31. https://doi.org/10. 1145/3273934.3273937
[5]
Fernando López de la Mora and Sarah Nadi. 2018. Which Library Should I Use?: A Metric-based Comparison of Software Libraries. In Proceedings of the 40th International Conference on Software Engineering : New Ideas and Emerging Results (Gothenburg, Sweden) (ICSE-NIER '18). ACM, New York, NY, USA, 37-40. https://doi.org/10.1145/3183399.3183418
[6]
Andreas Gizas, Sotiris Christodoulou, and Theodore Papatheodorou. 2012. Comparative Evaluation of Javascript Frameworks. In Proceedings of the 21st International Conference on World Wide Web (Lyon, France) (WWW '12 Companion). Association for Computing Machinery, New York, NY, USA, 513-514. https://doi.org/10.1145/2187980.2188103
[7]
Egon G Guba. 1981. Criteria for assessing the trustworthiness of naturalistic inquiries. Educational Technology research and development 29, 2 ( 1981 ), 75-91.
[8]
Harry H. Hiller and Linda Diluzio. 2004. The Interviewee and the Research Interview: Analysing a Neglected Dimension in Research*. Canadian Review of Sociology/Revue canadienne de sociologie 41, 1 ( 2004 ), 1-26. https://doi.org/10. 1111/j. 1755-618X. 2004.tb02167.x
[9]
A. Hora and M. T. Valente. 2015. Apiwave: Keeping track of API popularity and migration. In 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME), Vol. 00. 321-323. https://doi.org/10.1109/ICSM. 2015.7332478
[10]
Siw Elisabeth Hove and Bente Anda. 2005. Experiences from conducting semistructured interviews in empirical software engineering research. In Software metrics, 2005. 11th ieee international symposium. IEEE, 10-pp.
[11]
Irene Korstjens and Albine Moser. 2018. Series: Practical guidance to qualitative research. Part 4: Trustworthiness and publishing. European Journal of General Practice 24, 1 ( 2018 ), 120-124.
[12]
R. G. Kula, D. M. German, T. Ishio, and K. Inoue. 2015. Trusting a library: A study of the latency to adopt the latest Maven release, In 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER). 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER), 520-524. https://doi.org/10.1109/SANER. 2015.7081869
[13]
Enrique Larios Vargas, Maurício Aniche, Christoph Treude, Magiel Bruntink, and Georgios Gousios. 2020. Selecting third-party libraries: The practitioners' perspective. https://doi.org/10.5281/zenodo.3979446
[14]
Enrique Larios Vargas, Joseph Hejderup, Maria Kechagia, Magiel Bruntink, and Georgios Gousios. 2018. Enabling Real-time Feedback in Software Engineering. In Proceedings of the 40th International Conference on Software Engineering : New Ideas and Emerging Results (Gothenburg, Sweden) (ICSE-NIER '18). ACM, New York, NY, USA, 21-24. https://doi.org/10.1145/3183399.3183416
[15]
M. Li, W. Wang, P. Wang, S. Wang, D. Wu, J. Liu, R. Xue, and W. Huo. 2017. LibD: Scalable and Precise Third-Party Library Detection in Android Markets. In 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE). 335-346. https://doi.org/10.1109/ICSE. 2017.38
[16]
Caroline Lima and Andre Hora. 2019. What are the characteristics of popular APIs? A large-scale study on Java, Android, and 165 libraries. Software Quality Journal ( 2019 ). https://doi.org/10.1007/s11219-019-09476-z
[17]
Yana Momchilova Mileva, Valentin Dallmeier, Martin Burger, and Andreas Zeller. 2009. Mining Trends of Library Usage. In Proceedings of the Joint International and Annual ERCIM Workshops on Principles of Software Evolution (IWPSE) and Software Evolution (Evol) Workshops (Amsterdam, The Netherlands) (IWPSE-Evol '09). ACM, New York, NY, USA, 57-62. https://doi.org/10.1145/1595808.1595821
[18]
Yana Momchilova Mileva, Valentin Dallmeier, and Andreas Zeller. 2010. Mining API Popularity. In Testing-Practice and Research Techniques, Leonardo Bottaci and Gordon Fraser (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 173-180.
[19]
Katherine L. Milkman, Dolly Chugh, and Max H. Bazerman. 2009. How Can Decision Making Be Improved? Perspectives on psychological science : a journal of the Association for Psychological Science 4 4 ( 2009 ), 379-83.
[20]
I. J. Mojica, B. Adams, M. Nagappan, S. Dienst, T. Berger, and A. E. Hassan. 2014. A Large-Scale Empirical Study on Software Reuse in Mobile Apps. IEEE Software 31, 2 (Mar 2014 ), 78-86. https://doi.org/10.1109/MS. 2013.142
[21]
Brad A. Myers and Jefrey Stylos. 2016. Improving API Usability. Commun. ACM 59, 6 (May 2016 ), 62-69. https://doi.org/10.1145/2896587
[22]
Phuong T. Nguyen, Juri Di Rocco, Davide Di Ruscio, and Massimiliano Di Penta. 2020. CrossRec: Supporting software developers by recommending third-party libraries. Journal of Systems and Software 161 ( 2020 ), 110460. https://doi.org/10. 1016/j.jss. 2019.110460
[23]
Amantia Pano, Daniel Graziotin, and Pekka Abrahamsson. 2016. What leads developers towards the choice of a JavaScript framework ? CoRR abs/1605.04303 ( 2016 ). arXiv: 1605.04303 http://arxiv.org/abs/1605.04303
[24]
M. Piccioni, C. A. Furia, and B. Meyer. 2013. An Empirical Study of API Usability. In 2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement. 5-14. https://doi.org/10.1109/ESEM. 2013.14
[25]
Anselm Strauss and Juliet M Corbin. 1997. Grounded theory in practice. Sage Publications, Inc.
[26]
Viswanath Venkatesh, James Y. L. Thong, and Xin Xu. 2012. Consumer Acceptance and Use of Information Technology: Extending the Unified Theory of Acceptance and Use of Technology. MIS Quarterly 36, 1 ( 2012 ), 157-178. http://www.jstor.org/stable/41410412
[27]
Bowen Xu, Le An, Ferdian Thung, Foutse Khomh, and David Lo. 2020. Why reinventing the wheels? An empirical study on library reuse and re-implementation. Empirical Software Engineering 25, 1 ( 2020 ), 755-789. https://doi.org/10.1007/ s10664-019-09771-0
[28]
Y. Yano, R. G. Kula, T. Ishio, and K. Inoue. 2015. VerXCombo: An Interactive Data Visualization of Popular Library Version Combinations, In 2015 IEEE 23rd International Conference on Program Comprehension. 2015 IEEE 23rd International Conference on Program Comprehension, 291-294. https://doi.org/10.1109/ICPC. 2015.43
[29]
Asimina Zaimi, Apostolos Ampatzoglou, Noni Triantafyllidou, Alexander Chatzigeorgiou, Androklis Mavridis, Theodore Chaikalis, Ignatios Deligiannis, Panagiotis Sfetsos, and Ioannis Stamelos. 2015. An Empirical Study on the Reuse of Third-Party Libraries in Open-Source Software Development. In Proceedings of the 7th Balkan Conference on Informatics Conference (Craiova, Romania) (BCI '15). Association for Computing Machinery, New York, NY, USA, Article Article 4, 8 pages. https://doi.org/10.1145/2801081.2801087

Cited By

View all
  • (2024)Developers' Approaches to Software Supply Chain Security: An Interview StudyProceedings of the 2024 Workshop on Software Supply Chain Offensive Research and Ecosystem Defenses10.1145/3689944.3696160(56-66)Online publication date: 19-Nov-2024
  • (2024)Can ChatGPT emulate humans in software engineering surveys?Proceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3690744(414-419)Online publication date: 24-Oct-2024
  • (2024)Measuring Impact on Confidence in Institutions by their Use of Software ComponentsProceedings of the Central and Eastern European eDem and eGov Days 202410.1145/3670243.3670249(119-124)Online publication date: 12-Sep-2024
  • Show More Cited By

Index Terms

  1. Selecting third-party libraries: the practitioners’ perspective

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ESEC/FSE 2020: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
    November 2020
    1703 pages
    ISBN:9781450370431
    DOI:10.1145/3368089
    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 the author(s) 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: 08 November 2020

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. APIs
    2. empirical software engineering
    3. library adoption
    4. library selection
    5. software libraries

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    ESEC/FSE '20
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 112 of 543 submissions, 21%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)135
    • Downloads (Last 6 weeks)13
    Reflects downloads up to 26 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Developers' Approaches to Software Supply Chain Security: An Interview StudyProceedings of the 2024 Workshop on Software Supply Chain Offensive Research and Ecosystem Defenses10.1145/3689944.3696160(56-66)Online publication date: 19-Nov-2024
    • (2024)Can ChatGPT emulate humans in software engineering surveys?Proceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3690744(414-419)Online publication date: 24-Oct-2024
    • (2024)Measuring Impact on Confidence in Institutions by their Use of Software ComponentsProceedings of the Central and Eastern European eDem and eGov Days 202410.1145/3670243.3670249(119-124)Online publication date: 12-Sep-2024
    • (2024)PyRadar: Towards Automatically Retrieving and Validating Source Code Repository Information for PyPI PackagesProceedings of the ACM on Software Engineering10.1145/36608221:FSE(2608-2631)Online publication date: 12-Jul-2024
    • (2024)Characterizing Deep Learning Package Supply Chains in PyPI: Domains, Clusters, and DisengagementACM Transactions on Software Engineering and Methodology10.1145/364033633:4(1-27)Online publication date: 10-Jan-2024
    • (2024)Understanding Documentation Use Through Log Analysis: A Case Study of Four Cloud ServicesProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642721(1-17)Online publication date: 11-May-2024
    • (2024)ChatGPT Incorrectness Detection in Software ReviewsProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639194(1-12)Online publication date: 20-May-2024
    • (2024)Selecting third-party libraries: the web developers' perspectiveInternational Journal of Software Engineering and Knowledge Engineering10.1142/S0218194024500402Online publication date: 2-Aug-2024
    • (2024)Metrics-Based Evaluation and Comparison of Visualization NotationsIEEE Transactions on Visualization and Computer Graphics10.1109/TVCG.2023.332690730:1(425-435)Online publication date: 1-Jan-2024
    • (2024)Segmentation of Libraries, CMS, and PHP Frameworks Based on Code Characteristics: Implementation of Clustering Using K-Means2024 International Conference on Information Technology Research and Innovation (ICITRI)10.1109/ICITRI62858.2024.10699032(212-217)Online publication date: 5-Sep-2024
    • 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