Supporting exploratory code search with differencing and visualization

Wenjian Liu*, Xin Peng, Zhenchang Xing, Junyi Li, Bing Xie, Wenyun Zhao

*Corresponding author for this work

    Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

    8 Citations (Scopus)

    Abstract

    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.

    Original languageEnglish
    Title of host publication25th IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2018 - Proceedings
    PublisherInstitute of Electrical and Electronics Engineers Inc.
    Pages300-310
    Number of pages11
    ISBN (Electronic)9781538649695
    DOIs
    Publication statusPublished - 2 Apr 2018
    Event25th IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2018 - Campobasso, Italy
    Duration: 20 Mar 201823 Mar 2018

    Publication series

    Name25th IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2018 - Proceedings
    Volume2018-March

    Conference

    Conference25th IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2018
    Country/TerritoryItaly
    CityCampobasso
    Period20/03/1823/03/18

    Fingerprint

    Dive into the research topics of 'Supporting exploratory code search with differencing and visualization'. Together they form a unique fingerprint.

    Cite this