Title: Software Evolution Visualization
1Software Evolution Visualization
Lucian Voinea
2Why Software Evolution Visualization ?
- Software understanding
- what is the structure of the project ?
- what is important ?
- what is difficult ?
- who work on it ?
- what parts are connected to a given part ?
- what parts refer to a given aspect ?
- Product and process assessment
- what is the process ?
- what is the core team ?
- where is the activity concentrated ?
- what is stable ?
3Challenges
- Data acquisition
- data source ? SW Configuration Management
- long acquisition times
- large storage space, large bandwidth
- data parsing maintenance
- Data analysis
- - Enrich recorded evolution data E.g. evolution
similarity metrics - Data visualization
- multivariate 10s attributes (Demo 6
attributes) - large data amount 100s files,10s versions,
1000s lines - VTK 2700 files x 100 versions ArgoUML
4452 files x 80 versions
SW Configuration Management?SW evolution mining
4SW Evolution Visualization Toolset
data extraction
version control
management
system
CVSscan
CVSgrab
CVS
Project evolutionvisualization
File evolutionvisualization
5CVSgrab
Color - encodes a file metric computed on a given
version E.g. File type, Version author, Size
increase, Release ID,Specific text, Activity
6CVSgrab Example
Color encodes version author
Time
Files
7CVSscan
if self.bShowClusterColor glBlendFunc(GL_ONE_MINU
S_... 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
Color - encodes a line metric
8CVSscan
Line layout
9CVSscan Example
Color encodes content
10Conclusions
- Toolset for visualization of software evolution
CVSgrab CVSscan - Exploit source code history from CVS as main
source for getting insight in the structure and
development process - Complements existing reverse engineering and
code navigation tools - Outlook Improve the data analysis step, find
mechanisms for annotation management, improve
selection mechanisms, enhance the visualization
with new features, extend the data acquisition
sources and types
www.win.tue.nl/lvoinea/VCN.html