The Visual Code Navigator
The Visual Code Navigator
Lucian Voinea
Nunspeet, 24.11.2008
The software maintenance challenge
Often caused by
uninformed decisions
=
Software 80% of TCO
maintenance costs ( total cost of ownership)
Mostly spent on
understanding software
Outline
• Conclusions
What is software visualization?
is analyzed by
program
visualization the software
visual
SW engineer programming
generates
visual programming
creates is read tool
by
Software visualization pipeline
software analysis
data
mapping
few many
time aspect
evolution
Dynamic
(behavior)
Static VCN
(structure)
type of data
Code Data Algorithm
Visual Code Navigator (VCN)
VCN
database
CVS
SVN
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
Management
Benefits:
- assess impact more accurately
Developers
CVSscan CVSgrab
Evolution 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
v1 v2 v3 v4 v5 Time
if self.bShowClusterColor:
glBlendFunc(GL_ONE_MINUS_...
glEnable(GL_BLEND)
yPos = 0
bSwitch = True
for i in lCushionMap:
if bSwitch:
cushions.drawColorCl..
else:
cushions.drawColorClus…
bSwitch = not bSwitch
yPos = yPos + i
glDisable(GL_BLEND)
#cushion clusters
glBlendFunc(GL_ZERO,GL_...
glEnable(GL_BLEND)
yPos = 0
bSwitch = True
Deleted
Lines to be lines
inserted
Project
Time
Evolution visualization at file level
CVSgrab
Goal: Understand how did a project evolve.
Release ID
Size
Project
Complexity
Time
Evolution visualization at file level
CVSgrab
Conclusion:
Conclusion:
Conclusion:
Well distributed knowledge
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!