Replaying past changes in multi-developer projects
Proceedings of the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution (IWPSE)
Answering software evolution questions: An empirical evaluation
Information and Software Technology
Evolutionary and collaborative software architecture recovery with Softwarenaut
Science of Computer Programming
Hi-index | 0.00 |
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.