Software Visualization Using Hierarchical Edge Bundles and Massive Sequence Views Danny Holten and Jarke J. van Wijk Eindhoven University of Technology Technische Universiteit Eindhoven May 13, 2009 Eindhoven
Motivation Program Comprehension Purpose: maintenance, change requests Challenge: static and/or dynamic analysis Challenge: scalable visualization Dynamic Analysis Accurate picture of what is actually happening Late binding Object identities Execution Traces Execution of a (feature) scenario
Problem Statement Visualization – Properties Many structural elements Many interrelationships Typically: UML Sequence Diagrams (SD’s) Visualization – Purpose Exploration, feature location, and understanding Straightforward Approaches Do not suffice SD’s: too much scrolling, too much wasted space
Novel Visualization Approach Combination of Two Views Bundle view based on previous work Generalization of SD’s Hierarchical Edge Bundles (HEB’s) Visualize relations as bundles on top of hierarchy Massive Sequence View (MSV) Show order of calls as SD’s with improved scaling
HEBs – Data to Visualize Hierarchy Tree structure extracted from program For Java: Package – Class – Method Analogous for other languages Adjacency Relations Class-to-class calls Method-to-method, package-to-package… Analogous for other languages
HEB’s – Data to Visualize
HEBs – Main Idea
Sequence Diagrams Interaction between system components Calls time-ordered along vertical axis Do not scale well due to graphical depiction
Massive Sequence View Interaction between system components Calls time-ordered along vertical axis Scales well due to improved graphical depiction and rendering (IBAA) Zoomable (Level-of-Detail)
Importance-Based Anti-Aliasing
Integration of Multiple Views: ExtraVis
Final Remarks on ExtraVis Limitations Performance diminishes above calls Large traces demand a lot of computational resources Threads not (yet) supported Project Location and (more info on HEBs as well) Tool download High-resolution screenshots
Visual Comparison of Hierarchically Organized Data Using Hierarchical Edge Bundles
Why Compare Trees? Understand relationship between trees High-level overview of correspondence / differences Splits, joins, relocations of substructures Elements unique to each tree Various areas: evolutionary biology, HR & personnel, software development Software development Quickly gain insight in software architecture Overview of differences and similarities between versions Identify code reorganization 14
Visualization Problem Show both trees… 15
Visualization Problem Show both trees… 16
Visualization Problem …and correspondence between trees 17
Visualization Problem Improvement: icicle plots with straightened leafs 18
Visualization Problem Basic visualization using straight lines 19
Crossing Reduction 20
Crossing Reduction 21
Crossing Reduction 22
Crossing Reduction 23
Crossing Reduction 24
Crossing Reduction 25
Crossing Reduction 26
Crossing Reduction 27
Crossing Reduction 28
Crossing Reduction 29
Hierarchical Edge Bundles Introduce HEBs to replace straight lines “Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data”, IEEE InfoVis
Hierarchical Edge Bundles Bundling edges using the available hierarchy “Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data”, IEEE InfoVis
Hierarchical Edge Bundles Tree structures are “mirrored” to the center to provide HEB guides 32
Hierarchical Edge Bundles Different bundling strengths can be chosen 33
Hierarchical Edge Bundles Bundling controllable per hierarchy level 34
Program Demo
Final Remarks on Tree Comparison Advantageous features High-level overview of correspondence Hierarchies are sorted to facilitate comparison Bundling controllable per hierarchy level Direct interaction with correspondence using “crossing” Disadvantages Bundling can obscure individual relations Availability/generation of matching list necessary Non-atomicity of matching elements (granularity problem) 36
Questions?