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 条
  • [21] Empirical Study on the Usage of Graph Query Languages in Open Source Java']Java Projects
    Seifer, Philipp
    Haertel, Johannes
    Leinberger, Martin
    Laemmel, Ralf
    Staab, Steffen
    PROCEEDINGS OF THE 12TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON SOFTWARE LANGUAGE ENGINEERING (SLE '19), 2019, : 152 - 166
  • [22] Broken Promises: An Empirical Study into Evolution Problems in Java']Java Programs Caused by Library Upgrades
    Dietrich, Jens
    Jezek, Kamil
    Brada, Premek
    2014 SOFTWARE EVOLUTION WEEK - IEEE CONFERENCE ON SOFTWARE MAINTENANCE, REENGINEERING, AND REVERSE ENGINEERING (CSMR-WCRE), 2014, : 64 - +
  • [23] Bidirectional Transformations with QVT-R: A Case Study in Round-trip Engineering UML Class Models and Java']Java Source Code
    Greiner, Sandra
    Buchmann, Thomas
    Westfechtel, Bernhard
    PROCEEDINGS OF THE 4TH INTERNATIONAL CONFERENCE ON MODEL-DRIVEN ENGINEERING AND SOFTWARE DEVELOPMENT (MODELSWARD 2016), 2016, : 15 - 27
  • [24] Clustering data retrieved from Java']Java source code to support software maintenance: A case study
    Rousidis, D
    Tjortjis, C
    NINTH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING, PROCEEDINGS, 2005, : 276 - 279
  • [25] Package templates: A definition by semantics-preserving source-to-source transformations to efficient java code
    Department of Informatics, University of Oslo, Postboks 1080, Blindern, 0316 Oslo, Norway
    Proc. Int. Conf. Generative Program. Compon. Eng., GPCE, 1600, (50-59):
  • [26] Behavior investigation of concurrent Java programs: An approach based on source-code instrumentation
    Dipartimento Di Ingegneria dell'Informazione, Facoltà Di Ingegneria, Università Di Pisa, via Diotisalvi 2, 56100 Pisa, Italy
    Future Gener Comput Syst, 2 (307-316):
  • [27] Characterizing Configuration Problems in Java']Java EE Application Servers: An Empirical Study with GlassFish and JBoss
    Arshad, Fahad A.
    Krause, Rebecca J.
    Bagchi, Saurabh
    2013 IEEE 24TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE), 2013, : 198 - 207
  • [28] Research and Implementation of Security Vulnerability Detection in Application System of WEB Static Source Code Analysis Based on JAVA']JAVA
    Yuan, Hui
    Zheng, Lei
    Dong, Liang
    Peng, Xiangli
    Zhuang, Yan
    Deng, Guoru
    CYBER SECURITY INTELLIGENCE AND ANALYTICS, 2020, 928 : 444 - 452
  • [29] An empirical study to quantify the characteristics of Java']Java programs that may influence symbolic execution from a unit testing perspective
    Eler, Marcelo M.
    Endo, Andre T.
    Durelli, Vinicius H. S.
    JOURNAL OF SYSTEMS AND SOFTWARE, 2016, 121 : 281 - 297
  • [30] A large-scale empirical study of code smells in Java']JavaScript projects
    Johannes, David
    Khomh, Foutse
    Antoniol, Giuliano
    SOFTWARE QUALITY JOURNAL, 2019, 27 (03) : 1271 - 1314