Dynamic feature tracing : finding features in unfamiliar code
This dissertation shows that existing functional tests of software features can be used by a developer unfamiliar with the software system to identify source code relevant to those features as well as understand why the source code is relevant. There have been prior techniques to locate features...
Main Author: | |
---|---|
Language: | English |
Published: |
2009
|
Online Access: | http://hdl.handle.net/2429/15520 |
id |
ndltd-LACETR-oai-collectionscanada.gc.ca-BVAU.2429-15520 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-LACETR-oai-collectionscanada.gc.ca-BVAU.2429-155202014-03-14T15:48:18Z Dynamic feature tracing : finding features in unfamiliar code Eisenberg, Andrew David This dissertation shows that existing functional tests of software features can be used by a developer unfamiliar with the software system to identify source code relevant to those features as well as understand why the source code is relevant. There have been prior techniques to locate features in source code which can be roughly broken down into techniques that use static analysis and those that use dynamic analysis. Features, being behaviors of a system, are dynamic in nature. Therefore, this dissertation focuses on dynamic techniques, rather than the use static techniques. The dynamic techniques all require significant knowledge about the system before the technique can be useful. Furthermore, they all suffer in one or both of these respects: they make binary judgments about which source code artifacts relate to a feature without determining to what extent they relate (meaning that the feature must be precisely characterized, or else the technique will return inaccurate results), or they do not provide an idea of why a piece of code is relevant to a feature. Our technique of creating Dynamic Feature Traces improves upon previous work 1) by taking advantage of an existing test suite thereby reducing the amount of system knowledge necessary to use the technique, 2) by ranking the source code artifacts by how strongly they are related to the feature, and 3) by retaining some part of the execution trace of the test suite so that developers can understand why a piece of code is part of a feature. We show that our technique provides benefit over other techniques by applying it to existing software systems and comparing its results to an existing technique. 2009-11-21T21:00:50Z 2009-11-21T21:00:50Z 2004 2009-11-21T21:00:50Z 2004-11 Electronic Thesis or Dissertation http://hdl.handle.net/2429/15520 eng UBC Retrospective Theses Digitization Project [http://www.library.ubc.ca/archives/retro_theses/] |
collection |
NDLTD |
language |
English |
sources |
NDLTD |
description |
This dissertation shows that existing functional tests of software features can
be used by a developer unfamiliar with the software system to identify source code
relevant to those features as well as understand why the source code is relevant.
There have been prior techniques to locate features in source code which can
be roughly broken down into techniques that use static analysis and those that use
dynamic analysis.
Features, being behaviors of a system, are dynamic in nature. Therefore, this
dissertation focuses on dynamic techniques, rather than the use static techniques.
The dynamic techniques all require significant knowledge about the system
before the technique can be useful. Furthermore, they all suffer in one or both
of these respects: they make binary judgments about which source code artifacts
relate to a feature without determining to what extent they relate (meaning that the
feature must be precisely characterized, or else the technique will return inaccurate
results), or they do not provide an idea of why a piece of code is relevant to a feature.
Our technique of creating Dynamic Feature Traces improves upon previous
work 1) by taking advantage of an existing test suite thereby reducing the amount
of system knowledge necessary to use the technique, 2) by ranking the source code
artifacts by how strongly they are related to the feature, and 3) by retaining some
part of the execution trace of the test suite so that developers can understand why
a piece of code is part of a feature. We show that our technique provides benefit
over other techniques by applying it to existing software systems and comparing its
results to an existing technique. |
author |
Eisenberg, Andrew David |
spellingShingle |
Eisenberg, Andrew David Dynamic feature tracing : finding features in unfamiliar code |
author_facet |
Eisenberg, Andrew David |
author_sort |
Eisenberg, Andrew David |
title |
Dynamic feature tracing : finding features in unfamiliar code |
title_short |
Dynamic feature tracing : finding features in unfamiliar code |
title_full |
Dynamic feature tracing : finding features in unfamiliar code |
title_fullStr |
Dynamic feature tracing : finding features in unfamiliar code |
title_full_unstemmed |
Dynamic feature tracing : finding features in unfamiliar code |
title_sort |
dynamic feature tracing : finding features in unfamiliar code |
publishDate |
2009 |
url |
http://hdl.handle.net/2429/15520 |
work_keys_str_mv |
AT eisenbergandrewdavid dynamicfeaturetracingfindingfeaturesinunfamiliarcode |
_version_ |
1716653316943904768 |