Vector Abstraction and Concretization for Scalable Detection of Refactorings

被引:8
|
作者
Milea, Narcisa Andreea [1 ]
Jiang, Lingxiao [2 ]
Khoo, Siau-Cheng [1 ]
机构
[1] Natl Univ Singapore, Sch Comp, Singapore, Singapore
[2] Singapore Management Univ, Sch Informat Syst, Singapore, Singapore
来源
22ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (FSE 2014) | 2014年
关键词
Refactoring Detection; Software Evolution; Vector-Based Code Representation; CODE; IDENTIFICATION; SPECIFICATIONS; CLONES;
D O I
10.1145/2635868.2635926
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Automated techniques have been proposed to either identify refactoring opportunities (i.e., code fragments that can be but have not yet been restructured in a program), or reconstruct historical refactorings (i.e., code restructuring operations that have happened between different versions of a program). In this paper, we propose a new technique that can detect both refactoring opportunities and historical refactorings in large code bases. The key of our technique is the design of vector abstraction and concretization operations that can encode code changes induced by certain refactorings as characteristic vectors. Thus, the problem of identifying refactorings can be reduced to the problem of identifying matching vectors, which can be solved efficiently. We have implemented our technique for Java. The prototype is applied to 200 bundle projects from the Eclipse ecosystem containing 4.5 million lines of code, and reports in total more than 32K instances of 17 types of refactoring opportunities, taking 25 minutes on average for each type. The prototype is also applied to 14 versions of 3 smaller programs (JMeter, Ant, XML-Security), and detects (1) more than 2.8K refactoring opportunities within individual versions with a precision of about 87%, and (2) more than 190 historical refactorings across consecutive versions of the programs with a precision of about 92%.
引用
收藏
页码:86 / 97
页数:12
相关论文
共 50 条
  • [21] Scalable motion vector coding
    Barbarien, J
    Munteanu, A
    Verdicchio, E
    Andreopoulos, Y
    Cornelis, J
    Schelkens, P
    ELECTRONICS LETTERS, 2004, 40 (15) : 932 - 934
  • [22] THE ARM SCALABLE VECTOR EXTENSION
    Stephens, Nigel
    Biles, Stuart
    Boettcher, Matthias
    Eapen, Jacob
    Eyole, Mbou
    Gabrielli, Giacomo
    Horsnell, Matt
    Magklis, Grigorios
    Martinez, Alejandro
    Premillieu, Nathanael
    Reid, Alastair
    Rico, Alejandro
    Walker, Paul
    IEEE MICRO, 2017, 37 (02) : 26 - 39
  • [23] Scalable representation of vector descriptors
    Dong-Gyu Sim
    Hae-Kwang Kim
    Multimedia Systems, 2006, 11 : 315 - 319
  • [24] Scalable motion vector coding
    Barbarien, J
    Munteanu, A
    Verdicchio, F
    Andreopoulos, Y
    Cornelis, J
    Schelkens, P
    APPLICATIONS OF DIGITAL IMAGE PROCESSING XXVII, PTS 1AND 2, 2004, 5558 : 395 - 409
  • [25] Scalable representation of vector descriptors
    Sim, DG
    Kim, HK
    MULTIMEDIA SYSTEMS, 2006, 11 (04) : 315 - 319
  • [26] Deciding bit-vector arithmetic with abstraction
    Bryant, Randal E.
    Kroening, Daniel
    Ouaknine, Joel
    Seshia, Sanjit A.
    Strichman, Ofer
    Brady, Bryan
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PROCEEDINGS, 2007, 4424 : 358 - +
  • [27] Malware detection using bilayer behavior abstraction and improved one-class support vector machines
    Miao, Qiguang
    Liu, Jiachen
    Cao, Ying
    Song, Jianfeng
    INTERNATIONAL JOURNAL OF INFORMATION SECURITY, 2016, 15 (04) : 361 - 379
  • [28] VeriAbsL: Scalable Verification by Abstraction and Strategy Prediction (Competition Contribution)
    Darke, Priyanka
    Chimdyalwar, Bharti
    Agrawal, Sakshi
    Kumar, Shrawan
    Venkatesh, R.
    Chakraborty, Supratik
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PT II, TACAS 2023, 2023, 13994 : 588 - 593
  • [29] Malware detection using bilayer behavior abstraction and improved one-class support vector machines
    Qiguang Miao
    Jiachen Liu
    Ying Cao
    Jianfeng Song
    International Journal of Information Security, 2016, 15 : 361 - 379
  • [30] Abstraction and Refinement: Towards Scalable and Exact Verification of Neural Networks
    Liu, Jiaxiang
    Xing, Yunhan
    Shi, Xiaomu
    Song, Fu
    Xu, Zhiwu
    Ming, Zhong
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2024, 33 (05)