Functionality based refactoring : improving source code comprehension

Software maintenance is the lifecycle activity that consumes the greatest amount of resources. Maintenance is a difficult task because of the size of software systems. Much of the time spent on maintenance is spent trying to understand source code. Refactoring offers a way to improve source code des...

Full description

Bibliographic Details
Main Author: Beiko, Jeffrey Lee
Other Authors: Queen's University (Kingston, Ont.). Theses (Queen's University (Kingston, Ont.))
Format: Others
Language:en
en
Published: 2007
Subjects:
Online Access:http://hdl.handle.net/1974/958
id ndltd-LACETR-oai-collectionscanada.gc.ca-OKQ.1974-958
record_format oai_dc
spelling ndltd-LACETR-oai-collectionscanada.gc.ca-OKQ.1974-9582013-12-20T03:38:34ZFunctionality based refactoring : improving source code comprehensionBeiko, Jeffrey LeeAutomated refactoringBottom-up source code comprehensionProgram comprehensionSoftware maintenance is the lifecycle activity that consumes the greatest amount of resources. Maintenance is a difficult task because of the size of software systems. Much of the time spent on maintenance is spent trying to understand source code. Refactoring offers a way to improve source code design and quality. We present an approach to refactoring that is based on the functionality of source code. Sets of heuristics are captured as patterns of source code. Refactoring opportunities are located using these patterns, and dependencies are verified to check if the located refactorings preserve the dependencies in the source code. Our automated tool performs the functional-based refactoring opportunities detection process, verifies dependencies, and performs the refactorings that preserve dependencies. These refactorings transform the source code into a series of functional regions of code, which makes it easier for developers to locate code they are searching for. This also creates a chunked structure in the source code, which helps with bottom-up program comprehension. Thus, this process reduces the amount of time required for maintenance by reducing the amount of time spent on program comprehension. We perform case studies to demonstrate the effectiveness of our automated approach on two open source applications.Thesis (Master, Computing) -- Queen's University, 2007-10-05 12:48:56.977Queen's University (Kingston, Ont.). Theses (Queen's University (Kingston, Ont.))2007-10-05 12:48:56.9772008-01-02T19:05:58Z2008-01-02T19:05:58Z2008-01-02T19:05:58ZThesis592182 bytesapplication/pdfhttp://hdl.handle.net/1974/958enenCanadian thesesThis publication is made available by the authority of the copyright owner solely for the purpose of private study and research and may not be copied or reproduced except as permitted by the copyright laws without written authority from the copyright owner.
collection NDLTD
language en
en
format Others
sources NDLTD
topic Automated refactoring
Bottom-up source code comprehension
Program comprehension
spellingShingle Automated refactoring
Bottom-up source code comprehension
Program comprehension
Beiko, Jeffrey Lee
Functionality based refactoring : improving source code comprehension
description Software maintenance is the lifecycle activity that consumes the greatest amount of resources. Maintenance is a difficult task because of the size of software systems. Much of the time spent on maintenance is spent trying to understand source code. Refactoring offers a way to improve source code design and quality. We present an approach to refactoring that is based on the functionality of source code. Sets of heuristics are captured as patterns of source code. Refactoring opportunities are located using these patterns, and dependencies are verified to check if the located refactorings preserve the dependencies in the source code. Our automated tool performs the functional-based refactoring opportunities detection process, verifies dependencies, and performs the refactorings that preserve dependencies. These refactorings transform the source code into a series of functional regions of code, which makes it easier for developers to locate code they are searching for. This also creates a chunked structure in the source code, which helps with bottom-up program comprehension. Thus, this process reduces the amount of time required for maintenance by reducing the amount of time spent on program comprehension. We perform case studies to demonstrate the effectiveness of our automated approach on two open source applications. === Thesis (Master, Computing) -- Queen's University, 2007-10-05 12:48:56.977
author2 Queen's University (Kingston, Ont.). Theses (Queen's University (Kingston, Ont.))
author_facet Queen's University (Kingston, Ont.). Theses (Queen's University (Kingston, Ont.))
Beiko, Jeffrey Lee
author Beiko, Jeffrey Lee
author_sort Beiko, Jeffrey Lee
title Functionality based refactoring : improving source code comprehension
title_short Functionality based refactoring : improving source code comprehension
title_full Functionality based refactoring : improving source code comprehension
title_fullStr Functionality based refactoring : improving source code comprehension
title_full_unstemmed Functionality based refactoring : improving source code comprehension
title_sort functionality based refactoring : improving source code comprehension
publishDate 2007
url http://hdl.handle.net/1974/958
work_keys_str_mv AT beikojeffreylee functionalitybasedrefactoringimprovingsourcecodecomprehension
_version_ 1716620803406036992