Background

The analysis behind the adoption of a software library is a critical and complex process that requires specific attention in: 1) the correctly understanding of the problems on which decisions must be made, 2) finding and using the best knowledge available, 3) taking into account the perspectives of all involved stakeholders, 4) identifying the factors that influence the decision-making, 5) identifying information sources and potential tools to facilitate the decision-making process, 6) determining the impact and consequences of the decisions, and 7) documenting and disseminating the decision-making experience.

Problem

The success of software reuse relies on the outcomes of a decision-making process regarding the selection of which libraries to adopt. However, despite software re-use in the form of software libraries being a central part of modern software development, we do not know the circumstances, the thought process and the evaluated factors that lead practitioners to adopt a certain library over others or to adopt a library instead of re-implementing functionality.

In practice, software practitioners use ad-hoc methods to decide which libraries to adopt. The lack of a systematic approach may let software developers to be influenced by their emotions and cognitive biases while making decisions, a well-known phenomenon in decision-making [2]. Research has been showing that developers indeed take different factors into consideration when evaluating a library, such as how much they trust it [6], or how popular the library is in its ecosystem [3],[4],[5].

Research Questions:

  • How software practitioners choose a software library?
  • What influences the decision-making of software libraries adoption?
  • Which are the most appropriate quantitative methods/techniques for the evaluation of software libraries?
  • Which quantitative and qualitative factors influence the decision-making (assessment and evaluation) of software libraries adoption?
  • How can quantitative factor-based analysis improve the decision-making of libraries adoption?
  • How practitioners implement decisions related to the adoption of libraries (put into practice)?

Project’s context

Codefeedr [1] is a joint project between Software Improvement Group (SIG) and the Department of Software Technology (ST) at TU Delft. Our main goal is to make software analytics a core feedback loop for software engineering projects. In this context, the master thesis project aims to: (1) develop a near real-time tool to tackle current challenges in the decision-making of libraries adoption, and (2) to evaluate it in a real setting at SIG. SIG’s expertise in software quality provides an excellent environment to conduct research and to interact with real settings in decision-making. The decision support tool will provide a comprehensive and up-to-date view of the appropriate conditions to support software practitioners with the decision-making of software libraries adoption.

Contacts about the project:

  • Georgios Gousios (TU Delft)
  • Enrique Larios / Magiel Bruntink (SIG)

[1] Larios Vargas, E, Hejderup, J, Kechagia, M, Bruntink, M & Gousios, G. 2018, Enabling Real-Time Feedback in Software Engineering. in Proceedings of the 40th International Conference on Software Engineering: New Ideas and Emerging Results, ICSE-NIER 2018.

[2] D. Arnott. Cognitive biases and decision support systems development: a design science approach. Information Systems Journal, 16(1):55–78, 2005.

[3] Y. M. 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 (IWPSE) and Software Evolution (Evol) Workshops, IWPSE-Evol ’09, pages 57–62, New York, NY, USA, 2009. ACM.

[4] Y. M. Mileva, V. Dallmeier, and A. Zeller. Mining api popularity. In L. Bottaci and G. Fraser, editors, Testing –Practice and Research Techniques, pages 173–180, Berlin, Heidelberg, 2010.

[5] Y. Yano, R. G. Kula, T. Ishio, and K. Inoue. Verxcombo: An interactive data visualization of popular library version combinations. In 2015 IEEE 23rd International Conference on Program Comprehension, pages 291–294, 2015.

[6] R. G. Kula, D. M. German, T. Ishio, and K. Inoue. 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), pages 520–524, 2015.