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

Which library should I use?: a metric-based comparison of software libraries

Published:27 May 2018Publication History

ABSTRACT

Software libraries ease development tasks by allowing client developers to reuse code written by third parties. To perform a specific task, there is usually a large number of libraries that offer the desired functionality. Unfortunately, selecting the appropriate library to use is not straightforward since developers are often unaware of the advantages and disadvantages of each library, and may also care about different characteristics in different situations. In this paper, we introduce the idea of using software metrics to help developers choose the libraries most suited to their needs. We propose creating library comparisons based on several metrics extracted from multiple sources such as software repositories, issue tracking systems, and Q&A websites. By consolidating all of this information in a single website, we enable developers to make informed decisions by comparing metric data belonging to libraries from several domains. Additionally, we will use this website to survey developers about which metrics are the most valuable to them, helping us answer the broader question of what determines library quality. In this short paper, we describe the metrics we propose in our work and present preliminary results, as well as faced challenges.

References

  1. Robert Dyer, Hoan Anh Nguyen, Hridesh Rajan, and Tien N. Nguyen. 2013. Boa: A language and infrastructure for snalyzing ultra-large-scale software repositories. In Proceedings of the 35th International Conference on Software Engineering (ICSE'13). 422--431. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Emanuel Giger, Martin Pinzger, and Harald Gall. 2010. Predicting the fix time of bugs. In Proceedings of the 2nd International Workshop on Recommendation Systems for Software Engineering (RSSE '10). ACM, New York, NY, USA, 52--56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Andre Hora and Marco Tulio Valente. 2015. Apiwave: keeping track of API popularity and migration. In Proceedings of the 31st IEEE International Conference on Software Maintenance and Evolution (ICSME '15). IEEE Computer Society, Washington, DC, USA, 321--323. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Andreas Hotho, Andreas Nürnberger, and Gerhard Paaß. 2005. A brief survey of text mining. LDV Forum - GLDV Journal for Computational Linguistics and Language Technology 20, 1 (May 2005), 19--62.Google ScholarGoogle Scholar
  5. Suhas Kabinna, Cor-Paul Bezemer, Weiyi Shang, and Ahmed E. Hassan. 2016. Logging library migrations: a case study for the Apache software foundation projects. In Proceedings of the 13th International Conference on Mining Software Repositories (MSR '16). ACM, New York, NY, USA, 154--164. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Foutse Khomh, Tejinder Dhaliwal, Ying Zou, and Bram Adams. 2012. Do faster releases improve software quality?: an empirical case study of Mozilla Firefox. In Proceedings of the 9th IEEE Working Conference on Mining Software Repositories (MSR '12). IEEE Press, Piscataway, NJ, USA, 179--188. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Mario Linares-Vásquez, Gabriele Bavota, Carlos Bernal-Cárdenas, Massimiliano Di Penta, Rocco Oliveto, and Denys Poshyvanyk. 2013. API change and fault proneness: a threat to the success of Android apps. In Proceedings of the 9th Joint Meeting on Foundations of Software Engineering (ESEC/FSE 2013). ACM, New York, NY, USA, 477--487. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 (IWPSE-Evol '09). ACM, New York, NY, USA, 57--62. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Yana Momchilova Mileva, Valentin Dallmeier, and Andreas Zeller. 2010. Mining API popularity. In Proceedings of the 5th International Academic and Industrial Conference on Testing - Practice and Research Techniques (TAIC PART'10). Springer-Verlag, Berlin, Heidelberg, 173--180. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Shaikh Mostafa, Rodney Rodriguez, and Xiaoyin Wang. 2017. Experience paper: a study on behavioral backward incompatibilities of Java software libraries. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2017). ACM, New York, NY, USA, 215--225. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Masao Ohira, Yutaro Kashiwa, Yosuke Yamatani, Hayato Yoshiyuki, Yoshiya Maeda, Nachai Limsettho, Keisuke Fujino, Hideaki Hata, Akinori Ihara, and Kenichi Matsumoto. 2015. A dataset of high impact bugs: manually-classified issue reports. In Proceedings of the 12th Working Conference on Mining Software Repositories (MSR '15). IEEE Press, Piscataway, NJ, USA, 518--521. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Marco Ortu, Bram Adams, Giuseppe Destefanis, Parastou Tourani, Michele Marchesi, and Roberto Tonelli. 2015. Are bullies more productive?: empirical study of affectiveness vs. issue fixing time. In Proceedings of the 12th Working Conference on Mining Software Repositories (MSR '15). IEEE Press, Piscataway, NJ, USA, 303--313. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Nitish Pandey, Abir Hudait, Debarshi Kumar Sanyal, and Amitava Sen. 2018. Automated classification of issue reports from a software issue tracker. Springer Singapore, Singapore, 423--430.Google ScholarGoogle Scholar
  14. Cédric Teyton, Jean-Rémy Falleri, Marc Palyart, and Xavier Blanc. 2014. A study of library migrations in Java. J. Softw. Evol. Process 26, 11 (Nov. 2014), 1030--1052. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Gias Uddin and Foutse Khomh. 2017. Automatic summarization of API reviews. In Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE '17). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Laerte Xavier, Aline Brito, Andre Hora, and Marco Tulio Valente. 2017. Historical and impact analysis of API breaking changes: a large scale study. In 24th International Conference on Software Analysis, Evolution and Reengineering (SANER '17). 138--147.Google ScholarGoogle ScholarCross RefCross Ref

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    ICSE-NIER '18: Proceedings of the 40th International Conference on Software Engineering: New Ideas and Emerging Results
    May 2018
    130 pages
    ISBN:9781450356626
    DOI:10.1145/3183399

    Copyright © 2018 ACM

    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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 27 May 2018

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

    Upcoming Conference

    ICSE 2025

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader