Download presentation
Presentation is loading. Please wait.
Published byClaude Bradley Modified over 9 years ago
1
Lucian Voinea Visualizing the Evolution of Code The Visual Code Navigator (VCN) Nunspeet, 24.11.2008
2
The software maintenance challenge Software maintenance costs 80% of TCO ( total cost of ownership) = Mostly spent on understanding software Often caused by uninformed decisions
3
What is software visualization? Code Evolution Visualization in VCN o Line of code level o File level Conclusions Outline
4
What is software visualization? Scientific Visualization: “The use of computers or techniques for comprehending data or to extract knowledge from the results of simulations, computations, or measurements” [McCormick et al, 1987] Information Visualization: “Visualization applied to abstract quantities and relations in order to get insight in the data” [Chi, 2000][Diehl, 2006][…] Software Visualization: “Information visualization applied to software artefacts e.g. source code, design documents, profiling logs, and dynamic data structures in order to better write, understand and maintain, software”
5
Software visualization vs visual programming visual programming tool software visualization tool SW engineer the visual artifact space the software visual programming program visualization is read by creates generates is analyzed by creates is examined by
6
Software visualization pipeline software data acquisition internal data processing data mapping enriched data visual representations graphics rendering image human interpretation software analysis data visualization
7
Software visualization classifications Matrix of techniques [Myers, 1990] type of data time aspect Dynamic (behavior) Static (structure) CodeDataAlgorithm VCN fewmany evolution
8
Visual Code Navigator (VCN) a toolset that provides different, but strongly interconnected views on software source code VCN VCN database CVS SVN Data processing engines SCM
9
Code evolution visualization Goal: Understand when, why, and how software changed to cope with future activities (e.g. refactoring, release scheduling, test planning etc.) Developers Management 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 - get context dependent code editing suggestions - discover the developer network Benefits: - assess impact more accurately - better plan maintenance activities - reduce software understanding time - minimize error injection probability
10
Code evolution visualization in VCN Line of code levelFile level CVSscanCVSgrab
11
Evolution visualization at line level Goal: Understand how did a file evolve. - What were the major refactorings, contributions - Who is in charge of a given piece of code CVSscan
12
Color encodes authors Color encodes line contents Time (version) File line Time (version) File line Evolution visualization at line level CVSscan
13
Version 2Version 1Version 3 File 2 Version 1Version 2 File 3 Version 1Version 2 File 1 Time Project Evolution visualization at file level CVSgrab Goal: Understand how did a project evolve.
14
Version 2Version 1Version 3 File 2 Version 1Version 2 File 3 Version 1Version 2 File 1 Time Project Author ID Release ID Size Complexity Searched word … Release ID Size Complexity Searched word … Evolution visualization at file level CVSgrab Goal: Understand how did a project evolve. Sorting and clustering operations
15
Conclusion: 1. Software is not in a mature state (development is not stabilized). 2. It is difficult to maintain (high activity in large files). 3. Highly complex (≈ 30% have McCabe’s metric ≥ 7 per 30 lines of code) Case: Shall we buy this software stack ? Evolution visualization at file level CVSgrab
16
Case: What is the risk of releasing the software now? Conclusion: 1. There are currently no large scale debugging activities performed 2. The largest recent debugging activity was localized to one folder 3. Changes in the identified folder do not propagate outside Evolution visualization at file level CVSgrab
17
Conclusion: Well distributed knowledge Risky distribution of knowledge Case: What is the risk of one person leaving the team ? Evolution visualization at file level CVSgrab
18
Conclusions 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! Visual Code Navigator contains two tools for analyzing source code evolution (CVSscan, CVSgrab) offers a set of visual techniques that can supports a large variety of analysis scenarios tries to bridge the gap between research and industry by tight integration with common software configuration management (SCM) systems (e.g., CVS, Subversion)
19
Thank you for your attention ! lucian.voinea@solidsource.nl http://www.win.tue.nl/~lvoinea/VCN.html http://www.win.tue.nl/vis/
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.