Architecture Analysis Tools to Support Evolution of Large Industrial Systems
by Rotschke and Krikhaar. 2002
The toolset can present details about a dependency between two modules. Details are in html format.
An interesting case of applying architecture evolution analysis tools in the reengineering of an large industrial system who applied trend metrics.
GASE: visualizing software evolution-in-the-large
Holt and Pak. 1996
Holt and Pak in 1996 were among the first to attempt to visualize the evolution of software systems at the architectural level. As a case study, they used a system with a known architecture (subsystems and relations).
GASE is a tool for visualizing structural software evolution. Dependencies between modules don't seem to be aggregated so the result is quite messy. Two versions of a software system are presented on the same diagram and color coding higlights to which version the elements belong. Elements = modules + edges.
Observations
* Most changes occured between modules not subsystems
* The software system always grew and rarely shrank
* One developer saw a dependency which was wrong
Characterizing the evolution of class hierarchies
by Girba et. al. 2005
Class hierarchy evolution where deleted dependencies are represented and color coded.
Annotated Dependency Graphs for Software Understanding
by Hassan & Holt. 2003
Function level dependency graph. Automatically annotate a dependency graph with information regarding each dependency. Information is retrieved from the versioning system: rationale for change, creator.
The visual representation of the adg uses also colors to represent newly added dependencies and deleted ones.
The inter-function dependency graph can be 'lifted' to directory leve.
Visualizing the behavior of object-oriented systems
by De Pauw et. al. 1993
They instrument oo programs and monitor their execution. They present a rich collection of visualizations of the collected data. Some of the visualizations present inter-class dependencies represented as dependency matrices.
Package Surface Blueprints: Visually Supporting the Understanding of Package Relationships
by Ducasse, Pollet et al. 2007
Their paper focuses on architecting a compact representation of the inheritance and invocation dependencies between packages in an object-oriented system.
The visualisation uses a matrix based layout which highlights both the way a given package depends on others in the system as well as also the way the classes internal to the package
depend on one another.
Exploring Inter-Module Dependencies in Evolving Software Systems
by Lungu and Lanza
The authors analyze dependencies between packages. Their analysis is integrated in the interactive software exploration tool called Softwarenaut. They analyze multiple versions of a software system and create evolution diagrams which present the evolution of the relationship between two packages. For presenting the details of a given dependency in a given version they use a matrix-based visualization.
They also extract various types of dependency patterns.
Mircea writing things related to his thesis, so he won't forget them. One has many things floating through his head in the year of the thesis :)