animated visualization of software history using software evolution storyboards

Post on 13-Jan-2017

61 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

EPFLEPFLDirk.Beyer@epfl.chDirk.Beyer@epfl.ch

Dirk BeyerDirk BeyerSimon Fraser UniversitySimon Fraser UniversityDirk.Beyer@sfu.caDirk.Beyer@sfu.ca

Animated Visualization of Software History UsingEvolution Storyboards

Ahmed E. Hassan Ahmed E. Hassan University Of VictoriaUniversity Of Victoriaahmed@uvic.caahmed@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

top related