Software Visualization

Software Visualization is a branch of scientific visualization dealing with the visualization of software objects (algorithms, programs, parallel processes etc.). The following definition is cited from the Graphics, Visualization, and Usability Center Software Visualization page.
Software visualization is the use of computer graphics and animation to help illustrate and present computer programs, processes, and algorithms. Software visualization systems can be used in teaching to help students understand how algorithms work, and they can be used in program development as a way to help programmers understand their code better.

Today's algorithm animation systems cannot deal well with the hierarchy problem. This sort of problem frequently occurs because animation viewers have different needs according to their intent. Software developers need to find errors in actual code and thus need to see the inner workings of their programs, while students in an algorithms class are more concerned with the abstract ideas behind an algorithm than with the actual implementation.

Support for hierarchies becomes essential for medium to large scale programs. Our idea is to use interactive specification techniques based on object-oriented principles to annotate programs according to their structure. Based on hierarchy information embedded in the program's structure, the viewer can decide at run-time which levels he is interested in. My own research focuses on the design and implementation of DynaStruct, a software architecture for making the construction of algorithm animations simple and fast.

Software Visualization Research on the Web

In addition to the sites mentioned above, there are two online bibliographies available:

A Collection of Online Algorithm Animations

This section contains links to a selection of algorithm animations that can be viewed online on the Web.

Related Research Areas


Arne Frick
Last modified: Thu Nov 27 08:34:58 CET 1997
This page has been accessed times.