×

LibFinder

swMATH ID: 31417
Software Authors: Ali Ouni; Raula Gaikovina Kula; Marouane Kessentini; Takashi Ishio, Daniel M Germán; Katsuro Inoue
Description: Search-Based Software Library Recommendation Using Multi-Objective Optimization. Context: Software library reuse has significantly increased the productivity of software developers, reduced time-to-market and improved software quality and reusability. However, with the growing number of reusable software libraries in code repositories, finding and adopting a relevant software library becomes a fastidious and complex task for developers. Objective: In this paper, we propose a novel approach called LibFinder to prevent missed reuse opportunities during software maintenance and evolution. The goal is to provide a decision support for developers to easily find “useful” third-party libraries to the implementation of their software systems. Method: To this end, we used the non-dominated sorting genetic algorithm (NSGA-II), a multi-objective search-based algorithm, to find a trade-off between three objectives : 1) maximizing co-usage between a candidate library and the actual libraries used by a given system, 2) maximizing the semantic similarity between a candidate library and the source code of the system, and 3) minimizing the number of recommended libraries. Results: We evaluated our approach on 6,083 different libraries from Maven Central super repository that were used by 32,760 client systems obtained from Github super repository. Our results show that our approach outperforms three other existing search techniques and a state-of-the art approach, not based on heuristic search, and succeeds in recommending useful libraries at an accuracy score of 92
Homepage: https://ouniali.github.io/papers/IST2016-LibFinder.pdf
Related Software: LibRec; Libraries.io; word2vec; StanfordCoreNLP; Adam; Req2Lib; LibCUP; CrossRec
Cited in: 0 Documents