Exploring Inter-Module Relationships in Evolving Software Systems

  • Authors:
  • Mircea Lungu;Michele Lanza

  • Affiliations:
  • University of Lugano, Switzerland;University of Lugano, Switzerland

  • Venue:
  • CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many of the existing approaches to reverse architecting "the reverse engineering of the architecture of software systems" are based on software exploration tools which provide interactive ways of exploring the system. These tools start with high-level views of the system and refine them with drill-down techniques applied on the high-level entities such as modules and packages, leaving aside valuable information contained in the dependencies between them. In this article we argue that the visualization of inter-module relations bears great potential for supporting the understanding of large evolving software systems. We present two concrete examples of such visualizations. The first, The Semantic Dependency Matrix is a technique for displaying details about a dependency between two modules which groups together classes with similar behavior. The second, The Edge Evolution Filmstrip presents the evolution of an inter-module relation through multiple versions of the system. Based on our experience with the Edge Evolution Film Strip, we propose a pattern language for inter-module relationships. We exemplify both the visualizations and the pattern language with examples from two large open source software systems.