Dennis Edwards, Norman Wilde, Sharon Simmons, Eric Golden
Department of Computer Science, University of West Florida
Feature location is a commonly occurring problem in software reuse and maintenance. In understanding large software systems, Software Engineers need to locate the different software components that work together to provide a specific end user feature. Because of its importance, this problem has generated much interest among software maintenance researchers and a number of different methods of attack have been proposed, many of them involving tracing the execution of the software while the feature is running.
Over the last 15 years, our research group at the University of West Florida has worked with companies in the Software Engineering Research Center (SERC) on a series of studies to apply feature location techniques in practice. These case studies have generally been quite successful; a partnership of industry software engineers and university researchers has usually been able to get useful feature location results. However, recently a problem has appeared at two different SERC affiliates with large time-sensitive software systems.
In both cases it appeared that the instrumentation inserted to trace execution was making the system fail to initialize, or to "lock up" after startup. It would appear that less intrusive instrumentation methods are needed for feature location in such systems.
This report describes mininst, a "minimal" instrumentation approach, designed to meet the requirements of feature location but with as little impact as possible on system performance. Preliminary results from mininst are quite favorable with only a 10 - 20 % performance impact on several large artificial programs, and only a 1% impact when applied to the well-known Apache httpd web server.
* This report may be cited as SERC-TR-295, Software Engineering Research Center, http://www.serc.net, January, 2009