Publication Type

Conference Proceeding Article

Version

publishedVersion

Publication Date

9-2010

Abstract

In software maintenance and evolution, it is common that developers want to apply a change to a number of similar places. Due to the size and complexity of the code base, it is challenging for developers to locate all the places that need the change. A main challenge in locating the places that need the change is that, these places share certain common dependence conditions but existing code searching techniques can hardly handle dependence relations satisfactorily. In this paper, we propose a technique that enables developers to make queries involving dependence conditions and textual conditions on the system dependence graph of the program. We carried out an empirical evaluation on four searching tasks taken from the development history of two real-world projects. The results of our evaluation indicate that, compared with code-clone detection, our technique is able to locate many required code elements that code-clone detection cannot locate, and compared with text search, our technique is able to effectively reduce false positives without losing any required code elements.

Keywords

System Dependence Graph, Code Search, Graph Indexing

Discipline

Software Engineering

Research Areas

Software and Cyber-Physical Systems

Publication

ASE 2010: Proccedings of the 25th IEEE/ACM International Conference on Automated Software Engineering, 20-24 September, Antwerp, Belgium

First Page

457

Last Page

466

ISBN

9781450301169

Identifier

10.1145/1858996.1859091

Publisher

ACM

City or Country

New York

Copyright Owner and License

Publisher

Additional URL

https://doi.org/10.1145/1858996.1859091

Share

COinS