Using Industrial Tools for Software Feature Location and Understanding
SERC-TR-275
August, 2005
|
Sharon Simmons,
Dennis Edwards, Norman Wilde, Josh Homan
Department
of Computer Science, University of West Florida
|
|
Michael Groble
Motorola,
Inc.
|
Executive Summary
Software Engineers
supporting a
large software system often need to locate the code that performs a
specific
user feature. One method to solve this problem is software
reconnaissance, which compares execution traces taken when
the feature was active with background execution traces when it was
not.
Software components executed in the first set but not in the second
tend to be
involved in the feature of interest.
The software
reconnaissance method
has been tried in a number of contexts and academic software tools,
such as the
Recon3 toolset, are freely available. However companies might be more
willing
to apply this method if they could use commercial, industrial-strength
tools,
of known reliability.
This report describes a
study
performed with Motorola, Inc. to see if Metrowerks CodeTEST and
Klocwork
inSight could be used for feature location. Both tools are currently in
use in
Motorola and are know to be robust and effective. CodeTEST is a dynamic
analysis tool and can produce traces of execution, while inSight is a
static
analysis tool which allows browsing and architectural analysis of a
large
system.
The two tools were
combined with
TraceGraph, a trace comparison tool from the Recon3 toolset, in a case
study of
four features in a large open-source software system. The study showed
that the
tool combinations were effective for feature location, though about 180
hours
of effort was needed for tool adaptations to get them to work together.
Tool
integration was still less than optimal, with manual steps being
required to get
data from one tool to the next.
The typical time to
locate,
understand and document each feature was only about 4 hours. In most
cases the
software engineer only had to study a few hundred lines out of the more
than
200,000 lines making up the system.
We conclude that CodeTEST
and
inSight can be used effectively for feature location. We plan
enhancements to
the TraceGraph component to improve the ease of use of the combination.