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:
- Jörn Trilk's page
on Software Visualization, and
- one by myself.
A Collection of Online Algorithm Animations
This section contains links to a selection of algorithm animations that can
be viewed online on the Web.
- Graham's
Scan by Alejo Hausner.
- Bubblesort by
Alejo Hausner. The
animations are written in Java and run directly in the browser. No security
problem here.
- Several sorting
algorithms by Kenny Zalewski. It is an application of STL, the C++
Standard Template Library, and works by letting the user filling out a form.
In turn, a window is opened at the user's host machine (security danger!).
Unfortunately, I could never test this out, since the connection was very
slow.
- The Worldwide
Animation project. It is purely text-based and works by presenting the
program as a text field in a form. The user may annotate breakpoints and
set parameters. Every algorithm animation step results in an update of the
form, indicating the status of the program.
Related Research Areas
Arne Frick
Last modified: Thu Nov 27 08:34:58 CET 1997
This page has been accessed
times.