TY - GEN
T1 - Supporting exploratory code search with differencing and visualization
AU - Liu, Wenjian
AU - Peng, Xin
AU - Xing, Zhenchang
AU - Li, Junyi
AU - Xie, Bing
AU - Zhao, Wenyun
N1 - Publisher Copyright:
© 2018 IEEE.
PY - 2018/4/2
Y1 - 2018/4/2
N2 - Searching and reusing online code has become a common practice in software development. Two important characteristics of online code have not been carefully considered in current tool support. First, many pieces of online code are largely similar but subtly different. Second, several pieces of code may form complex relations through their differences. These two characteristics make it difficult to properly rank online code to a search query and reduce the efficiency of examining search results. In this paper, we present an exploratory online code search approach that explicitly takes into account the above two characteristics of online code. Given a list of methods returned for a search query, our approach uses clone detection and code differencing techniques to analyze both commonalities and differences among the methods in the search results. It then produces an exploration graph that visualizes the method differences and the relationships of methods through their differences. The exploration graph allows developers to explore search results in a structured view of different method groups present in the search results, and turns implicit code differences into visual cues to help developers navigate the search results. We implement our approach in a web-based tool called CodeNuance. We conduct experiments to evaluate the effectiveness of our CodeNuance tool for search results examination, compared with ranked-list and code-clustering based search results examination. We also compare the performance and user behavior differences in using our tool and other exploratory code search tools.
AB - Searching and reusing online code has become a common practice in software development. Two important characteristics of online code have not been carefully considered in current tool support. First, many pieces of online code are largely similar but subtly different. Second, several pieces of code may form complex relations through their differences. These two characteristics make it difficult to properly rank online code to a search query and reduce the efficiency of examining search results. In this paper, we present an exploratory online code search approach that explicitly takes into account the above two characteristics of online code. Given a list of methods returned for a search query, our approach uses clone detection and code differencing techniques to analyze both commonalities and differences among the methods in the search results. It then produces an exploration graph that visualizes the method differences and the relationships of methods through their differences. The exploration graph allows developers to explore search results in a structured view of different method groups present in the search results, and turns implicit code differences into visual cues to help developers navigate the search results. We implement our approach in a web-based tool called CodeNuance. We conduct experiments to evaluate the effectiveness of our CodeNuance tool for search results examination, compared with ranked-list and code-clustering based search results examination. We also compare the performance and user behavior differences in using our tool and other exploratory code search tools.
UR - http://www.scopus.com/inward/record.url?scp=85051053037&partnerID=8YFLogxK
U2 - 10.1109/SANER.2018.8330218
DO - 10.1109/SANER.2018.8330218
M3 - Conference contribution
T3 - 25th IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2018 - Proceedings
SP - 300
EP - 310
BT - 25th IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2018 - Proceedings
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 25th IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2018
Y2 - 20 March 2018 through 23 March 2018
ER -