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 条
  • [1] Analyzing the Evolution of Testing Library Usage in Open Source Java']Java Projects
    Zerouali, Ahmed
    Mens, Tom
    2017 IEEE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), 2017, : 417 - 421
  • [2] Characteristics of method extractions in Java']Java: a large scale empirical study
    Hora, Andre
    Robbes, Romain
    EMPIRICAL SOFTWARE ENGINEERING, 2020, 25 (03) : 1798 - 1833
  • [3] Characterizing refactoring graphs in Java']Java and Java']JavaScript projects
    Brito, Aline
    Hora, Andre
    Valente, Marco Tulio
    EMPIRICAL SOFTWARE ENGINEERING, 2021, 26 (06)
  • [4] The evolution of Java']Java build systems
    McIntosh, Shane
    Adams, Bram
    Hassan, Ahmed E.
    EMPIRICAL SOFTWARE ENGINEERING, 2012, 17 (4-5) : 578 - 608
  • [5] A large-scale study on the usage of Java']Java's concurrent programming constructs
    Pinto, Gustavo
    Torres, Weslley
    Fernandes, Benito
    Castor, Fernando
    Barros, Roberto S. M.
    JOURNAL OF SYSTEMS AND SOFTWARE, 2015, 106 : 59 - 81
  • [6] Class movement and re-location: An empirical study of Java']Java inheritance evolution
    Nassed, E.
    Counsell, S.
    Shepperd, M.
    JOURNAL OF SYSTEMS AND SOFTWARE, 2010, 83 (02) : 303 - 315
  • [7] Preventive program maintenance in Demeter/Java']Java
    Lieberherr, KJ
    Orleans, D
    PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1997, : 604 - 605
  • [8] Usage patterns of the Java']Java standard API
    Ma, Homan
    Amor, Robert
    Tempero, Ewan
    ASPEC 2006: 13TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2006, : 342 - +
  • [9] Flight of the FINCH Through the Java']Java Wilderness
    Orlov, Michael
    Sipper, Moshe
    IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION, 2011, 15 (02) : 166 - 182
  • [10] Regression test selection for Java']Java software
    Harrold, MJ
    Jones, JA
    Li, TY
    Liang, DL
    Orso, A
    Pennings, M
    Sinha, S
    Spoon, SA
    Gujarathi, A
    ACM SIGPLAN NOTICES, 2001, 36 (11) : 312 - 326