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...

Full description

Bibliographic Details
Main Author: Eisenberg, Andrew David
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