Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 Challenges Data acquisition - data source SW Configuration Management - long acquisition times - large storage space, large bandwidth - data parsing & maintenance SW Configuration Management ≠ SW evolution mining 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 ArgoUML – 2700 files x 100 versions – 4452 files x 80 versions www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006 SW Evolution Visualization Toolset version control management system data extraction CVSgrab CVS Project evolution visualization www.win.tue.nl/~lvoinea/VCN.html CVSscan File evolution visualization Eindhoven, 03.02.2006 CVSgrab Metric views System evolution at time ti Time F1 V1 V2 V3 Vertical layout – given by a sort criteria F2 Evolution of file Fi F3 F4 E.g. Creation time, Folder, Activity, Similarity Files Color - encodes a file metric computed on a given version E.g. File type, Version author, Size increase, Release ID, Specific text, Activity www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006 CVSgrab Example Color encodes version author Different Similar Horizontal metric : Release ID Time Vertical metric : similarity www.win.tue.nl/~lvoinea/VCN.html Files Eindhoven, 03.02.2006 CVSscan 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 Color - encodes a line metric www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006 CVSscan Line layout Normal Layout Horizontal Layout Discrete time (versions) Discrete time (versions) Deleted lines Lines to be inserted Legend www.win.tue.nl/~lvoinea/VCN.html Constant line New lines Eindhoven, 03.02.2006 CVSscan Example Color encodes content www.win.tue.nl/~lvoinea/VCN.html Color encodes authors Eindhoven, 03.02.2006 Conclusions • 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 www.win.tue.nl/~lvoinea/VCN.html Eindhoven, 03.02.2006