A study of library migrations in Java']Java

被引:41
|
作者
Teyton, Cedric [1 ]
Falleri, Jean-Remy [1 ]
Palyart, Marc [1 ]
Blanc, Xavier [1 ]
机构
[1] Bordeaux Univ, LaBRI, UMR 5800, F-33400 Talence, France
关键词
software evolution; software repositories; API analysis;
D O I
10.1002/smr.1660
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Software intensively depends on external libraries whose relevance may change during its life cycle. As a consequence, software developers must periodically reconsider the libraries they depend on, and must think about replacing them for more relevant ones. We refer to this practice as library migration. To find the best replacement for their library, they can rely on information over the Web, but they get quickly overwhelmed by the amount of data they gather. Making the right choice in this context constitutes the topic of our work. The solution we propose is to exhibit and mine the library migrations trends computed by performing a study of a large set of software projects. To perform this analysis, we have defined an automatic approach to compute library dependencies and a semi-automatic approach that identifies library migrations. Then, we propose a deep analysis of the library migration phenomena by performing a descriptive study of a large set of software projects stored on the Githubplatform. Second, based on our descriptive study, we propose a support to developers who want to migrate their libraries. The main result of our study is that recommendations of libraries can be inferred from the analysis of the migration trends. Copyright (c) 2014 John Wiley & Sons, Ltd.
引用
收藏
页码:1030 / 1052
页数:23
相关论文
共 41 条
  • [31] Using software metrics for predicting vulnerable classes and methods in Java']Java projects: A machine learning approach
    Sultana, Kazi Zakia
    Anu, Vaibhav
    Chong, Tai-Yin
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2021, 33 (03)
  • [32] A Role-based Crosscutting Concerns Mining Approach to Evolve Java']Java Systems Towards AOP
    Bernardi, Mario Luca
    Di Lucca, Giuseppe Antonio
    IWPSE-EVOL 09: ERCIM WORKSHOP ON SOFTWARE EVOLUTION (EVOL) AND INTERNATIONAL WORKSHOP ON PRINCIPLES OF SOFTWARE EVOLUTION (IWPSE), 2009, : 63 - 72
  • [33] Analyzing the Evolution of Java']Javascript Applications
    Chatzimparmpas, Angelos
    Bibi, Stamatia
    Zozas, Ioannis
    Kerren, Andreas
    PROCEEDINGS OF THE 14TH INTERNATIONAL CONFERENCE ON EVALUATION OF NOVEL APPROACHES TO SOFTWARE ENGINEERING (ENASE), 2019, : 359 - 366
  • [34] Towards characterizing bug fixes through dependency-level changes in Apache Java']Java open source projects
    Cui, Di
    Fan, Lingling
    Chen, Sen
    Cai, Yuanfang
    Zheng, Qinghua
    Liu, Yang
    Liu, Ting
    SCIENCE CHINA-INFORMATION SCIENCES, 2022, 65 (07)
  • [35] Exploring API Deprecation Evolution in Java']JavaScript
    Nascimento, Romulo
    Hora, Andre
    Figueiredo, Eduardo
    2022 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER 2022), 2022, : 169 - 173
  • [36] Characterizing refactoring graphs in Java and JavaScript projects
    Aline Brito
    Andre Hora
    Marco Tulio Valente
    Empirical Software Engineering, 2021, 26
  • [37] What are the characteristics of popular APIs? A large-scale study on Java, Android, and 165 libraries
    Caroline Lima
    Andre Hora
    Software Quality Journal, 2020, 28 : 425 - 458
  • [38] Evaluating a Visual Approach for Understanding Java']JavaScript Source Code
    Dias, Martin
    Orellana, Diego
    Vidal, Santiago
    Merino, Leonel
    Bergel, Alexandre
    2020 IEEE/ACM 28TH INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, ICPC, 2020, : 128 - 138
  • [39] A Recommender System for Recovering Relevant Java']JavaScript Packages from Web Repositories
    Vazquez, Hernan C.
    Diaz-Pace, J. Andres
    Vidal, Santiago A.
    Marcos, Claudia
    2023 IEEE 20TH INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE, ICSA, 2023, : 175 - 185
  • [40] Managing security vulnerabilities introduced by dependencies in React.JS']JS Java']JavaScript framework
    Anastasia, Terzi
    Stamatia, Bibi
    2024 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING-COMPANION, SANER-C 2024, 2024, : 126 - 133