Learn More
CVSSearch is a tool that searches for fragments of source code by using CVS comments. CVS is a version control system that is widely used in the open source community [4]. Our search tool takes advantage of the fact that a CVS comment typically describes the lines of code involved in the commit and this description will typically hold for many future(More)
Comparing and contrasting a set of software libraries is useful for reuse related activities such as selecting a library from among several candidates or porting an application from one library to another. The current state of the art in assessing libraries relies on qualitative methods. In particular, the developer manually inspects each library, reads the(More)
Nowadays, applications are typically written using an object-oriented GUI framework. In this paper we explore the possibility of using the GUI of such applications to guide browsing and search of their source code. Such a tool would be helpful for software maintenance and reuse, particularly when the application source is unfamiliar. Intuitively, we would(More)
Nowadays, the majority of productivity applications are interactive and graphical in nature. In this paper, we explore the possibility of taking advantage of these two characteristics in a design recovery tool. Specifically, the fact that an application is interactive means that we can identify distinct execution bursts corresponding closely to "actions"(More)
<i>Developers learn to use a software library not just from its documentation but also from toy examples and existing real-life application code (e.g., by using grep). The CodeWeb tool takes this simple idea further by a deeper analysis of a large collection of applications to see what characteristic usage of the library is like. We demonstrate the tool by(More)
In this paper, we present a tool-based approach that examines how example programs reuse a particular library. Our approach can facilitate reuse by: (1) guiding the developer towards important library classes of general utility ; (2) guiding the developer towards library classes particularly useful for a specific application domain; and (3) providing access(More)