software evolution visualization

10
w.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006 Software Evolution Visualization Lucian Voinea

Upload: vielka-lang

Post on 03-Jan-2016

23 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Software Evolution Visualization

www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006

Software Evolution Visualization

Lucian Voinea

Page 2: Software Evolution Visualization

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 ?

Page 3: Software Evolution Visualization

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

Page 4: Software Evolution Visualization

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

Page 5: Software Evolution Visualization

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

Page 6: Software Evolution Visualization

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

Page 7: Software Evolution Visualization

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

Page 8: Software Evolution Visualization

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

Page 9: Software Evolution Visualization

www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006

CVSscan Example

Color encodes content Color encodes authors

Page 10: Software Evolution Visualization

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…