Refactoring-Aware Block Tracking in Commit History

被引:0
|
作者
Hasan, Mohammed Tayeeb [1 ]
Tsantalis, Nikolaos [1 ]
Alikhanifard, Pouria [1 ]
机构
[1] Concordia Univ, Dept Comp Sci & Software Engn, Montreal, PQ H3G 1M8, Canada
基金
加拿大自然科学与工程研究理事会;
关键词
Codes; History; Software; Accuracy; Containers; Computer bugs; Source coding; Software engineering; !text type='Java']Java[!/text; Target tracking; Commit change history; refactoring-aware source code tracking; change oracle;
D O I
10.1109/TSE.2024.3484586
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Tracking the change history of statements in the commits of a project repository is in many cases useful for supporting various software maintenance, comprehension, and evolution tasks. A high level of accuracy can facilitate the adoption of code tracking tools by developers and researchers. To this end, we propose CodeTracker, a refactoring-aware tool that can generate the commit change history for code blocks. To evaluate its accuracy, we created an oracle with the change history of 1,280 code blocks found within 200 methods from 20 popular open-source project repositories. Moreover, we created a baseline based on the current state-of-the-art Abstract Syntax Tree diff tool, namely GumTree 3.0, in order to compare the accuracy and execution time. Our experiments have shown that CodeTracker has a considerably higher precision/recall and faster execution time than the GumTree-based baseline, and can extract the complete change history of a code block with a precision and recall of 99.5% within 3.6 seconds on average.
引用
收藏
页码:3330 / 3350
页数:21
相关论文
共 50 条
  • [1] Refactoring-Aware Code Review
    Ge, Xi
    Sarkar, Saurabh
    Witschey, Jim
    Murphy-Hill, Emerson
    2017 IEEE SYMPOSIUM ON VISUAL LANGUAGES AND HUMAN-CENTRIC COMPUTING (VL/HCC), 2017, : 71 - 79
  • [2] Towards Refactoring-Aware Regression Test Selection
    Wang, Kaiyuan
    Zhu, Chenguang
    Celik, Ahmet
    Kim, Jongwook
    Batory, Don
    Gligoric, Milos
    PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2018, : 233 - 244
  • [3] IntelliMerge: A Refactoring-Aware Software Merging Technique
    Shen, Bo
    Zhang, Wei
    Zhao, Haiyan
    Liang, Guangtai
    Jin, Zhi
    Wang, Qianxiang
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (OOPSLA):
  • [4] ReBA: Refactoring-aware Binary Adaptation of Evolving Libraries
    Dig, Danny
    Negara, Stas
    Johnson, Ralph
    Mohindra, Vibhu
    ICSE'08 PROCEEDINGS OF THE THIRTIETH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 2008, : 441 - 450
  • [5] REdiffs: Refactoring-Aware Difference Viewer for Java']Java
    Hayashi, Shinpei
    Thangthumachit, Sirinut
    Saeki, Motoshi
    2013 20TH WORKING CONFERENCE ON REVERSE ENGINEERING (WCRE), 2013, : 487 - 488
  • [6] RAID: Tool Support for Refactoring-Aware Code Reviews
    Brito, Rodrigo
    Valente, Marco Tulio
    2021 IEEE/ACM 29TH INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC 2021), 2021, : 265 - 275
  • [7] RAT: A Refactoring-Aware Traceability Model for Bug Localization
    Niu, Feifei
    Assuncao, Wesley K. G.
    Huang, LiGuo
    Mayr-Dorn, Christoph
    Ge, Jidong
    Luo, Bin
    Egyed, Alexander
    2023 IEEE/ACM 45TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ICSE, 2023, : 196 - 207
  • [8] Refactoring-Aware Code Review: A Systematic Mapping Study
    Coelho, Flavia
    Massoni, Tiago
    Alves, Everton L. G.
    2019 IEEE/ACM 3RD INTERNATIONAL WORKSHOP ON REFACTORING (IWOR 2019), 2019, : 63 - 66
  • [9] Operation-Based Refactoring-Aware Merging: An Empirical Evaluation
    Ellis, Max
    Nadi, Sarah
    Dig, Danny
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2023, 49 (04) : 2698 - 2721
  • [10] Refactoring-aware configuration management for object-oriented programs
    Dig, Danny
    Manzoor, Kashif
    Johnson, Ralph
    Nguyen, Tien N.
    ICSE 2007: 29TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2007, : 427 - +