Degree Type

Thesis

Date of Award

2013

Degree Name

Master of Science

Department

Electrical and Computer Engineering

First Advisor

Suraj C. Kothari

Abstract

As the size and complexity of software grows developers have an ever-increasing need to understand software in a modular way. Most complex software systems can be divided into smaller modules if the developer has domain knowledge of the code or up-to-date documentation. If neither of these exist discovery of code modules can be a tedious, manual process.

This research hypothesizes that graph-based clustering can be used effectively for automated software architecture extraction. We propose methods of representing relationships between program artifacts as graphs and then propose new partitional algorithms to extract software modules from those graphs. To validate our hypothesis and the partitional algorithms a new set of tools, including a software data miner, cluster builder, graph viewer, and cluster score calculator, were created. This toolset was used to implement partitional algorithms and analyze their performance in extracting modules. The Xinu operating system was used as a case study because it has defined modules that can be compared to the results of the partitional algorithm.

DOI

https://doi.org/10.31274/etd-180810-3304

Copyright Owner

John Thomas Chargo

Language

en

File Format

application/pdf

File Size

53 pages

Share

COinS