The Visual Code Navigator

  • Uploaded by: Lucian Voinea
  • 0
  • 0
  • April 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View The Visual Code Navigator as PDF for free.

More details

  • Words: 778
  • Pages: 19
Visualizing the Evolution of Code The Visual Code Navigator (VCN)

Lucian Voinea Nunspeet, 24.11.2008

The software maintenance challenge

Often caused by uninformed decisions

Software maintenance costs

Mostly spent on understanding software

=

80% of TCO ( total cost of ownership)

Outline

• What is software visualization? • Code Evolution Visualization in VCN o Line of code level o File level

• Conclusions

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”

Software visualization vs visual programming the visual artifact space is examined by creates

software visualization tool is analyzed by

program visualization

SW engineer

creates

the software

visual programming

generates is read by

visual programming tool

Software visualization pipeline

software analysis software data

data acquisition

internal data

data processing

enriched data

data mapping human interpretation data visualization

image

graphics rendering

visual representations

Software visualization classifications Matrix of techniques [Myers, 1990] few

many

time aspect

evolution Dynamic (behavior) Static (structure)

VCN Code

Data

Algorithm

type of data

Visual Code Navigator (VCN) a toolset that provides different, but strongly interconnected views on software source code

VCN

VCN database

CVS SVN SCM

Data processing engines

Code evolution visualization

Developers

Management

Goal: Understand when, why, and how software changed to cope with future activities (e.g. refactoring, release scheduling, test planning etc.)

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

Code evolution visualization in VCN Line of code level

File level

CVSscan

CVSgrab

Evolution visualization at line level CVSscan Goal: Understand how did a file evolve. - What were the major refactorings, contributions - Who is in charge of a given piece of code 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

Normal Layout

Horizontal Layout Discrete time (versions)

Discrete time (versions)

Deleted lines

Lines to be inserted

Legend

Constant line

New lines

Evolution visualization at line level CVSscan Time (version)

File line

Color encodes authors

File line

Time (version)

Color encodes line contents

Evolution visualization at file level CVSgrab Goal: Understand how did a project evolve.

Project

File 3

Version 1

File 2 File 1

Version 1

Version 1

Version 2

Version 2

Version 2

Version 3

Time

Evolution visualization at file level CVSgrab Goal: Understand how did a project evolve.

Project

File 3

Version 1

File 2 File 1

Version 1

Version 1

Version 2

Version 2

Version 2

Version 3

Time

Sorting and clustering operations

Release ID Size Complexity Searched word …

Evolution visualization at file level CVSgrab Case:

Shall we buy this software stack ?

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)

Evolution visualization at file level CVSgrab 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 Case:

What is the risk of one person leaving the team ?

Conclusion: Well distributed knowledge

Risky distribution of knowledge

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)

http://www.win.tue.nl/~lvoinea/VCN.html http://www.win.tue.nl/vis/

Thank you for your attention ! [email protected]

Related Documents

Henry The Navigator
June 2020 2
Navigator Object
December 2019 21
Picstitch Navigator
December 2019 18

More Documents from "Waldir Pimenta"