Reconciling the Past and the Present: An Empirical Study on the Application of Source Code Transformations to Automatically Rejuvenate Java']Java Programs

被引:0
|
作者
Dantas, Reno [1 ]
Carvalho Junior, Antonio [1 ]
Marcilio, Diego [1 ]
Fantin, Luisa [1 ]
Silva, Uriel [1 ]
Lucas, Walter [1 ]
Bonifacio, Rodrigo [1 ]
机构
[1] Univ Brasilia, Comp Sci Dept, Brasilia, DF, Brazil
来源
2018 25TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION AND REENGINEERING (SANER 2018) | 2018年
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Software systems change frequently over time, either due to new business requirements or technology pressures. Programming languages evolve in a similar constant fashion, though when a language release introduces new programming constructs, older constructs and idioms might become obsolete. The coexistence between newer and older constructs leads to several problems, such as increased maintenance efforts and steeper learning curve for developers. In this paper we present a RASCAL Java transformation library that evolves legacy systems to use more recent programming language constructs (such as multi-catch and lambda expressions). In order to understand how relevant automatic software rejuvenation is, we submitted 2462 transformations to 40 open source projects via the GitHub pull request mechanism. Initial results show that simple transformations, for instance the introduction of the diamond operator, are more likely to be accepted than transformations that change the code substantially, such as refactoring enhanced for loops to the newer functional style.
引用
收藏
页码:497 / 501
页数:5
相关论文
共 44 条
  • [1] Towards Detecting Inconsistent Comments in Java']Java Source Code Automatically
    Stulova, Nataliia
    Blasi, Arianna
    Gorla, Alessandra
    Nierstrasz, Oscar
    2020 20TH IEEE INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM 2020), 2020, : 65 - 69
  • [2] Impact of Selected Java']Java Idioms on Source Code Maintainability - Empirical Study
    Hnatkowska, Bogumila
    Jaszczak, Anna
    PROCEEDINGS OF THE NINTH INTERNATIONAL CONFERENCE ON DEPENDABILITY AND COMPLEX SYSTEMS DEPCOS-RELCOMEX, 2014, 286 : 243 - 254
  • [3] An empirical study of Java']Java bytecode programs
    Collberg, Christian
    Myles, Ginger
    Stepp, Michael
    SOFTWARE-PRACTICE & EXPERIENCE, 2007, 37 (06): : 581 - 641
  • [4] Application of Statistical Classifiers on Java']Java Source Code
    Mojzes, Matej
    Rost, Michal
    Smolka, Josef
    Virius, Miroslav
    PROCEEDINGS OF THE 2015 FEDERATED CONFERENCE ON SOFTWARE DEVELOPMENT AND OBJECT TECHNOLOGIES, 2017, 511 : 208 - 218
  • [5] SPOON: A library for implementing analyses and transformations of Java']Java source code
    Pawlak, Renaud
    Monperrus, Martin
    Petitprez, Nicolas
    Noguera, Carlos
    Seinturier, Lionel
    SOFTWARE-PRACTICE & EXPERIENCE, 2016, 46 (09): : 1155 - 1179
  • [6] Mutating code annotations: An empirical evaluation on Java']Java and C# programs
    Pinheiro, Pedro
    Viana, Jose Carlos
    Ribeiro, Marcio
    Fernandes, Leo
    Ferrari, Fabiano
    Gheyi, Rohit
    Fonseca, Baldoino
    SCIENCE OF COMPUTER PROGRAMMING, 2020, 191
  • [7] An Eye-Tracking Study of Java']Java Programmers and Application to Source Code Summarization
    Rodeghero, Paige
    Liu, Cheng
    McBurney, Paul W.
    McMillan, Collin
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2015, 41 (11) : 1038 - 1054
  • [8] Remodularizing Java']Java programs for improved locality of feature implementations in source code
    Olszak, Andrzej
    Jorgensen, Bo Norregaard
    SCIENCE OF COMPUTER PROGRAMMING, 2012, 77 (03) : 131 - 151
  • [9] How do Java']Java programs use inheritance? An empirical study of inheritance in Java']Java software
    Tempero, Ewan
    Noble, James
    Melton, Hayden
    ECOOP 2008 - OBJECT-ORIENTED PROGRAMMING, PROCEEDINGS, 2008, 5142 : 667 - +
  • [10] Package Templates: A Definition by Semantics-Preserving Source-to-Source Transformations to Efficient Java']Java Code
    Axelsen, Eyvind W.
    Krogdahl, Stein
    ACM SIGPLAN NOTICES, 2013, 48 (03) : 50 - 59