animated visualization of software history using software evolution storyboards

18
EPFL EPFL [email protected] [email protected] Dirk Beyer Dirk Beyer Simon Fraser Simon Fraser University University [email protected] [email protected] Animated Visualization of Software History Using Evolution Storyboards Ahmed E. Hassan Ahmed E. Hassan University Of Victoria University Of Victoria [email protected] [email protected]

Upload: sailqu

Post on 13-Jan-2017

61 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Animated Visualization of Software History Using Software Evolution Storyboards

[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

Page 2: Animated Visualization of Software History Using Software Evolution Storyboards

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

Page 3: Animated Visualization of Software History Using Software Evolution Storyboards

Storyboard

• Produced traditionally beforehand for directors and cinematographers

• Used to study movie scenes and to uncover potential problems before they occur

Page 4: Animated Visualization of Software History Using Software Evolution Storyboards

An Example Storyboard

Page 5: Animated Visualization of Software History Using Software Evolution Storyboards

Evolution Storyboard

• An evolution storyboard contains dynamic panels

• Each panel depicts consecutively important events and periods in the lifetime of long-lived software systems

Page 6: Animated Visualization of Software History Using Software Evolution Storyboards

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

Page 7: Animated Visualization of Software History Using Software Evolution Storyboards

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

Page 8: Animated Visualization of Software History Using Software Evolution Storyboards

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

Page 9: Animated Visualization of Software History Using Software Evolution Storyboards

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

Page 10: Animated Visualization of Software History Using Software Evolution Storyboards

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%)

Page 11: Animated Visualization of Software History Using Software Evolution Storyboards

Panels in Evolution Storyboards

Page 12: Animated Visualization of Software History Using Software Evolution Storyboards

Panels in Evolution Storyboards

Page 13: Animated Visualization of Software History Using Software 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)

Page 14: Animated Visualization of Software History Using Software Evolution Storyboards

Mozilla Storyboard

Compose

DB

MIME

Address Book

IMAP

NNTP

Parsing

Page 15: Animated Visualization of Software History Using Software Evolution Storyboards

Mozilla 1st Panel in Storyboard

Page 16: Animated Visualization of Software History Using Software Evolution Storyboards

Refactoring Candidates (1/2)

Page 17: Animated Visualization of Software History Using Software Evolution Storyboards

Refactoring Candidates (2/2)

Page 18: Animated Visualization of Software History Using Software Evolution Storyboards

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