[email protected]@epfl.ch
Dirk BeyerDirk BeyerSimon Fraser UniversitySimon Fraser [email protected]@sfu.ca
Animated Visualization of Software History UsingEvolution Storyboards
Ahmed E. Hassan Ahmed E. Hassan University Of VictoriaUniversity Of [email protected]@uvic.ca
Visualizing Software Evolution
• Static visualizations of evolution:– fail to capture the dynamics of software evolution
• A movie visualization of evolution:– is not easy to control by developers (who want to focus
on particular time periods, or parts of a system)• We propose a visualization, evolution storyboards,
which strikes a balance between static and movie visualizations
Storyboard
• Produced traditionally beforehand for directors and cinematographers
• Used to study movie scenes and to uncover potential problems before they occur
An Example Storyboard
Evolution Storyboard
• An evolution storyboard contains dynamic panels
• Each panel depicts consecutively important events and periods in the lifetime of long-lived software systems
Our Graph Model
• Nodes: files/functions/subsystems• Edges: co-change (from CVS)• Layout: energy-based
A B
C D
A B
C D
C1
C2
Studied Systems
System Years Commits Nodes Edges
ArgoUML 8 10,108 20,247 57,036
PostgreSQL 9 7,882 9,086 35,809
Mozilla 6 9,950 11,754 30,938
Properties of Our Layout Algorithm
• Related nodes are placed together, non-related nodes are placed far apart
• Strongly connected nodes separate out from the rest of the graph
Approach Overview
• To avoid blur and clutter:– We ignore small movements of a node,
• if its degree did not change– We do not highlight a node’s movement,
• if it did not move much (e.g. < 1% of panel size)• if its degree is too small
– We use a “follow your neighbors” heuristic
Storyboard Colouring
• Authoritative decomposition:– subsystems / directory
• Heat Map based on a node’s movement:– Orange (moved in 40% of panels), Yellow
(30%), Green (20%), Gray (10%)
Panels in Evolution Storyboards
Panels in Evolution Storyboards
Benefits of Evolution Storyboards
• Spot good structure– well separated nodes
• Explain decay symptoms:– colouring patterns (separate/mixed colours)
• Highlight refactoring candidates:– frequently moving nodes (using heat colouring)
Mozilla Storyboard
Compose
DB
MIME
Address Book
IMAP
NNTP
Parsing
Mozilla 1st Panel in Storyboard
Refactoring Candidates (1/2)
Refactoring Candidates (2/2)
Conclusion
• Static visualizations of evolution do not capture the dynamics of software evolution
• The approach has been applied to several large software systems: Mozilla, ArgoUML, PostgreSQL
• Evolution storyboards can help:– Spot good structure– Explain design decay– Highlight refactoring candidates