Font Size: a A A

Comprehension-driven software clustering

Posted on:2002-09-21Degree:Ph.DType:Thesis
University:University of Toronto (Canada)Candidate:Tzerpos, VassiliosFull Text:PDF
GTID:2468390011493800Subject:Computer Science
Abstract/Summary:
A common problem that the software industry has to face is that of maintaining and upgrading legacy software. The fact that the structure of most legacy software systems is not understood makes this a difficult task. However, it is essential that this knowledge be recovered in order to migrate a software system to a new hardware platform or programming language, or simply to enhance its functionality. The proliferation of reverse engineering projects that attempt to regain this knowledge suggests that this is an issue of great importance.; One of the techniques that has been used to deal with the problems that arise from the sheer size and complexity of large software systems is software clustering. Decomposing a software system into smaller, more manageable subsystems can aid the process of understanding it significantly.; In this thesis, we concentrate on a number of open questions related to software clustering, such as methods for evaluating the output of different software clustering approaches, study of the stability of various algorithms, and incremental clustering. We also present an automatic clustering algorithm that is designed to produce decompositions that help our understanding of the target system. This algorithm identifies clusters based on known patterns of decomposition that are observed in large software systems. It also produces clusters of bounded size and names clusters in an intuitive manner.; The approaches presented in this thesis have been applied to real industrial software systems. The results we obtained demonstrate the effectiveness and usefulness of our techniques.
Keywords/Search Tags:Software
Related items