Conceptual modules: expressing desired structure for software reengineering

Many tools have been built to analyze the source code of software systems. Most of these tools do not adequately support software reengineering activities because they do not allow a software engineer to analyze both existing and desired software structures. This thesis describes the conceptual...

Full description

Bibliographic Details
Main Author: Baniassad, Elisa L.A.
Language:English
Published: 2009
Online Access:http://hdl.handle.net/2429/7611
id ndltd-LACETR-oai-collectionscanada.gc.ca-BVAU.2429-7611
record_format oai_dc
spelling ndltd-LACETR-oai-collectionscanada.gc.ca-BVAU.2429-76112014-03-14T15:42:13Z Conceptual modules: expressing desired structure for software reengineering Baniassad, Elisa L.A. Many tools have been built to analyze the source code of software systems. Most of these tools do not adequately support software reengineering activities because they do not allow a software engineer to analyze both existing and desired software structures. This thesis describes the conceptual modules approach and supporting tool that aids the engineer in the investigation and analysis of desired structure with relation to the existing structure of source code. This approach allows a selected subset of lines of source to be treated as a logical unit. This subset is referred to as a conceptual module. The lines of code that comprise a conceptual module need not be contiguous, nor must they be related in any way in the source. Using variable dependence and control transfer information extracted from the source, the tool analyzes the conceptual module's constituent lines of code to determine its interface. Additionally, the data- or control-flow between two or more conceptual modules can be examined as a means of eliciting the relationships between the modules and between conceptual modules and the source. To allow the necessary flexibility in analysis, the functionality of the tool can be tailored through a programmatic query language component. The usefulness of the tool has been investigated in two different ways. First, the tool was applied to several different reengineering scenarios: restructuring from procedural to object-oriented program design, re-modularizing code in an existing program with little structure, and extracting a portion of source for reuse. For each scenario, several existing program understanding tools were also applied to provide a basis of comparison between existing approaches and the conceptual modules approach. Second, the tool was successfully applied to actual reengineering tasks by two different groups of users. One group eliminated unnecessary parts of a system's source to improve efficiency and to enable parallelization of a 47,000 line, 56-file software package. The other group performed analysis on a procedural program so as to better understand how to transform the existing source into an object-oriented version. 2009-04-27T23:13:40Z 2009-04-27T23:13:40Z 1997 2009-04-27T23:13:40Z 1998-05 Electronic Thesis or Dissertation http://hdl.handle.net/2429/7611 eng UBC Retrospective Theses Digitization Project [http://www.library.ubc.ca/archives/retro_theses/]
collection NDLTD
language English
sources NDLTD
description Many tools have been built to analyze the source code of software systems. Most of these tools do not adequately support software reengineering activities because they do not allow a software engineer to analyze both existing and desired software structures. This thesis describes the conceptual modules approach and supporting tool that aids the engineer in the investigation and analysis of desired structure with relation to the existing structure of source code. This approach allows a selected subset of lines of source to be treated as a logical unit. This subset is referred to as a conceptual module. The lines of code that comprise a conceptual module need not be contiguous, nor must they be related in any way in the source. Using variable dependence and control transfer information extracted from the source, the tool analyzes the conceptual module's constituent lines of code to determine its interface. Additionally, the data- or control-flow between two or more conceptual modules can be examined as a means of eliciting the relationships between the modules and between conceptual modules and the source. To allow the necessary flexibility in analysis, the functionality of the tool can be tailored through a programmatic query language component. The usefulness of the tool has been investigated in two different ways. First, the tool was applied to several different reengineering scenarios: restructuring from procedural to object-oriented program design, re-modularizing code in an existing program with little structure, and extracting a portion of source for reuse. For each scenario, several existing program understanding tools were also applied to provide a basis of comparison between existing approaches and the conceptual modules approach. Second, the tool was successfully applied to actual reengineering tasks by two different groups of users. One group eliminated unnecessary parts of a system's source to improve efficiency and to enable parallelization of a 47,000 line, 56-file software package. The other group performed analysis on a procedural program so as to better understand how to transform the existing source into an object-oriented version.
author Baniassad, Elisa L.A.
spellingShingle Baniassad, Elisa L.A.
Conceptual modules: expressing desired structure for software reengineering
author_facet Baniassad, Elisa L.A.
author_sort Baniassad, Elisa L.A.
title Conceptual modules: expressing desired structure for software reengineering
title_short Conceptual modules: expressing desired structure for software reengineering
title_full Conceptual modules: expressing desired structure for software reengineering
title_fullStr Conceptual modules: expressing desired structure for software reengineering
title_full_unstemmed Conceptual modules: expressing desired structure for software reengineering
title_sort conceptual modules: expressing desired structure for software reengineering
publishDate 2009
url http://hdl.handle.net/2429/7611
work_keys_str_mv AT baniassadelisala conceptualmodulesexpressingdesiredstructureforsoftwarereengineering
_version_ 1716651188183629824