Recovering the Structure of Software Systems Using Tube Graph Interconnection Clustering

  • Authors:
  • Spiros Mancoridis;Richard C. Holt

  • Affiliations:
  • -;-

  • Venue:
  • ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

An important product of the software design phase is the specification of the software structure at various levels of detail. Without reliable design documentation, significant software systems become less accessible to software engineers because structural information is buried in the intricate implementation source code. Reverse engineering techniques aim at recovering the structure of software systems, from the source code and mental models of developers, in order to make these systems more understandable to those maintaining them. Many reverse engineering techniques rely on creating a decomposition hierarchy by recursively clustering related software components (e.g., variables, procedures, classes, modules) into composite components (e.g., subsystems). Component clustering is necessary for managing complexity, and therefore is an important step in the reverse engineering process. In this paper, we argue that the clustering of interconnections is also necessary during reverse engineering. We propose an approach, based on a formalism called tube graphs, to specifying system structure that considers both composite software components and composite interconnections between these components. We present efficient algorithms for software interconnection clustering, which nicely complement existing software component clustering algorithms.