Software clustering using dynamic analysis and static dependencies

Maintaining a large software system is not an easy task. The problem is that software engineers must understand various parts of the system prior to performing the maintenance task at hand. The comprehension process of an existing system can be made easier if the system is decomposed into smaller...

Full description

Bibliographic Details
Main Author: Patel, Chiragkumar
Format: Others
Published: 2008
Online Access:http://spectrum.library.concordia.ca/975184/1/MR45525.pdf
Patel, Chiragkumar <http://spectrum.library.concordia.ca/view/creators/Patel=3AChiragkumar=3A=3A.html> (2008) Software clustering using dynamic analysis and static dependencies. Masters thesis, Concordia University.
Description
Summary:Maintaining a large software system is not an easy task. The problem is that software engineers must understand various parts of the system prior to performing the maintenance task at hand. The comprehension process of an existing system can be made easier if the system is decomposed into smaller and more manageable clusters; software engineers can focus on analyzing only the subsystems needed to solve the maintenance task at hand. There exists several software clustering techniques, among which the most predominant ones are based on the analysis of the source code. However, due to the increasing complexity of software, we argue that this structural clustering is no longer sufficient. In this thesis, we present a novel software clustering approach that combines dynamic and static analysis. Dynamic analysis is used to build a stable core skeleton decomposition of the system by measuring the similarity between the system's components according to the number of software features they implement. Static analysis is used to enrich the skeleton decomposition by adding the components that were not clustered using dynamic analysis. A case study involving two object-oriented systems is presented to evaluate the applicability and effectiveness of our approach.