Title: Lucian Voinea
1Visualizing the Evolution of CodeThe Visual Code
Navigator (VCN)
Nunspeet, 24.11.2008
2The software maintenance challenge
Often caused by uninformed decisions
Software maintenance costs
80 of TCO ( total cost of ownership)
Mostly spent on understanding software
3Outline
- What is software visualization?
- Code Evolution Visualization in VCN
- Line of code level
- File level
- Conclusions
4What is software visualization?
Scientific Visualization The use of computers
or techniques for comprehending data or to
extract knowledge from the results of
simulations, computations, or measurementsMcCor
mick et al, 1987 Information Visualization
Visualization applied to abstract quantities and
relations in order to get insight in the data
Chi, 2000Diehl, 2006 Software
Visualization Information visualization applied
to software artefacts e.g. source code, design
documents, profiling logs, and dynamic data
structures in order to better write, understand
and maintain, software
5Software visualization vs visual programming
6Software visualization pipeline
software analysis
software data
data acquisition
internal data
data processing
enriched data
datamapping
image
visual representations
graphicsrendering
human interpretation
data visualization
7Software visualization classifications
Matrix of techniques Myers, 1990
time aspect
Dynamic(behavior)
Static(structure)
VCN
type of data
Code
Data
Algorithm
8Visual Code Navigator (VCN)
a toolset that provides different, but strongly
interconnected views on software source code
VCN
9Code evolution visualization
Goal Understand when, why, and how software
changed to cope with future activities
(e.g. refactoring, release scheduling, test
planning etc.)
- Use cases
- identify the system parts that could be affected
by a change or migration - identify the system areas that are subject to
debugging in the near future - get context dependent code editing suggestions
- discover the developer network
- Benefits
- assess impact more accurately
- better plan maintenance activities
- reduce software understanding time
- minimize error injection probability
10Code evolution visualization in VCN
Line of code level
File level
CVSscan
CVSgrab
11Evolution visualization at line level
CVSscan
Goal Understand how did a file evolve. - What
were the major refactorings, contributions - Who
is in charge of a given piece of code
12Evolution visualization at line level
CVSscan
Time (version)
Time (version)
File line
File line
13Evolution visualization at file level
CVSgrab
Goal Understand how did a project evolve.
14Evolution visualization at file level
CVSgrab
Goal Understand how did a project evolve.
Release ID Size Complexity Searched word
File 3
Version 1
Version 2
File 2
Version 1
Version 2
File 1
Time
15Evolution visualization at file level
CVSgrab
Case Shall we buy this software stack ?
16Evolution visualization at file level
CVSgrab
Case What is the risk of releasing the software
now?
Conclusion 1. There are currently no large
scale debugging activities performed 2. The
largest recent debugging activity was localized
to one folder 3. Changes in the identified
folder do not propagate outside
17Evolution visualization at file level
CVSgrab
Case What is the risk of one person leaving the
team ?
Conclusion
Well distributed knowledge
Risky distribution of knowledge
18Conclusions
- Software Visualization
- is a new but quickly growing field many tools
are emerging at a high pace - promising but validation is still a problem
integration is a must!
- Visual Code Navigator
- contains two tools for analyzing source code
evolution (CVSscan, CVSgrab) - offers a set of visual techniques that can
supports a large variety of analysis scenarios - tries to bridge the gap between research and
industry by tight integration with common
software configuration management (SCM) systems
(e.g., CVS, Subversion)
19http//www.win.tue.nl/lvoinea/VCN.html http//www
.win.tue.nl/vis/
Thank you for your attention !
lucian.voinea_at_solidsource.nl