TY - GEN
T1 - Supporting selective undo for refactoring
AU - Cheng, Xiao
AU - Chen, Yuting
AU - Hu, Zhenjiang
AU - Zan, Tao
AU - Liu, Mengyu
AU - Zhong, Hao
AU - Zhao, Jianjun
N1 - Funding Information:
We thank the anonymous reviewers for their constructive feedback. We also thank Hiroyuki Kato and Soichiro Hi-daka for their invaluable suggestions on bidirectional transformations. Yuting Chen is the corresponding author. This research is sponsored by 973 Program in China (Grant No. 2015CB352203), and the National Nature Science Foundation of China (NSFC) (Grant Nos. 61572312, 61572313, and 61272102). This work is also partially supported by JSPS Grant-in-Aid for Scientific Research (A) No. 25240009 in Japan. Hao Zhong is partially supported by Science and Technology Commission of Shanghai Municipality’s Innovation Action Plan (No.15DZ1100305).
Publisher Copyright:
© 2016 IEEE
PY - 2016/5/20
Y1 - 2016/5/20
N2 - Due to various considerations, programmers often need to backtrack their code. Furthermore, as the most recent edit may not be the wrong edit, programmers sometimes have to backtrack their code for arbitrary edits, which is referred as a selective undo in this paper. To meet the needs, researchers have proposed various approaches to support selective undo. However, to the best of our knowledge, these approaches can support only simple edits, and cannot handle refactoring, although most code editors already provide various refactoring actions. Indeed, it is challenging to support selective undoes for refactoring, since multiple code elements and complicated actions can be involved. In this paper, we present a novel approach that leverages Bidirectional Transformation (BX) to support selective undoes for refactoring. We evaluate our approach on a recent refactoring tool that transfers enhanced for loops to lambda expressions. Our results show that our approach achieves success ratio of up to 89%.
AB - Due to various considerations, programmers often need to backtrack their code. Furthermore, as the most recent edit may not be the wrong edit, programmers sometimes have to backtrack their code for arbitrary edits, which is referred as a selective undo in this paper. To meet the needs, researchers have proposed various approaches to support selective undo. However, to the best of our knowledge, these approaches can support only simple edits, and cannot handle refactoring, although most code editors already provide various refactoring actions. Indeed, it is challenging to support selective undoes for refactoring, since multiple code elements and complicated actions can be involved. In this paper, we present a novel approach that leverages Bidirectional Transformation (BX) to support selective undoes for refactoring. We evaluate our approach on a recent refactoring tool that transfers enhanced for loops to lambda expressions. Our results show that our approach achieves success ratio of up to 89%.
UR - http://www.scopus.com/inward/record.url?scp=84979789713&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84979789713&partnerID=8YFLogxK
U2 - 10.1109/SANER.2016.20
DO - 10.1109/SANER.2016.20
M3 - Conference contribution
AN - SCOPUS:84979789713
T3 - 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering, SANER 2016
SP - 13
EP - 23
BT - 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering, SANER 2016
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering, SANER 2016
Y2 - 14 March 2016 through 18 March 2016
ER -