software evolution visualization
DESCRIPTION
Software Evolution Visualization. Lucian Voinea. Why 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 ? - PowerPoint PPT PresentationTRANSCRIPT
www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006
Software Evolution Visualization
Lucian Voinea
www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006
Why 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 ?
www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006
ChallengesData 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 versionsArgoUML – 4452 files x 80 versions
SW Configuration Management≠
SW evolution mining
www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006
version control management
system
data extraction
CVS
Project evolutionvisualization
File evolutionvisualization
CVSscanCVSgrab
SW Evolution Visualization Toolset
www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006
CVSgrab
V1 V2 V3
F2
F3
F4
TimeF1
Files
Color - encodes a file metric computed on a given version
E.g. File type, Version author, Size increase, Release ID,Specific text, Activity
Vertical layout – given by a sort criteria
E.g. Creation time,Folder, Activity, Similarity
Metric views System evolution at time ti
Evolutionof file Fi
www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006
Time
Files
CVSgrab Example Color encodes version author
Horizontalmetric :Release ID
Vertical metric : similarity
Diff
eren
tS
imila
r
www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006
CVSscan
if self.bShowClusterColor:glBlendFunc(GL_ONE_MINUS_...glEnable(GL_BLEND) yPos = 0 bSwitch = Truefor i in lCushionMap: if bSwitch: cushions.drawColorCl.. else: cushions.drawColorClus… bSwitch = not bSwitch yPos = yPos + i glDisable(GL_BLEND) #cushion clustersglBlendFunc(GL_ZERO,GL_... glEnable(GL_BLEND) yPos = 0 bSwitch = True
Timev1 v2 v3 v4 v5
Color - encodes a line metric
www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006
Deleted lines Lines to be
inserted
Constant line New lines Legend
Normal Layout
Discrete time (versions) Discrete time (versions)
Horizontal Layout
Line layout
CVSscan
www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006
CVSscan Example
Color encodes content Color encodes authors
www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006
Conclusions
www.win.tue.nl/~lvoinea/VCN.html
• 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…