



Nick Drew, Bob Hendley
The work described here is concerned with enhancing the visualisation of
complex software systems (in particular object-oriented systems [4]).
The major
concern is to provide a powerful and concrete visual representation of such
abstract systems, through which a user can move seamlessly from viewing the
architectural structure to considering low level detail. The main approaches
are to use virtual reality techniques and self organising systems.
Complex software systems (in our case object-oriented systems) place an
enormous cognitive load on the user. The programs being manipulated will have a
large number of components and complex interactions between these components.
Software development environments (e.g. SparcWorks [1]) typically provide
support for users by providing graphical browsers which do assist with the
visualisation but which place a heavy load on the user through requiring
substantial context switching between different views and representations.
Using virtual reality techniques provides for a more natural and, ultimately,
more powerful representation of such systems since, by building a metaphor of a
concrete 3-dimensional world, it is possible to utilise existing experience and
expectations in manipulating and navigating through such systems.
Objects are initially placed arbitrarily in the virtual reality. The objects
are given behaviour by attaching a mass and forces which act between them.
These control the way in which the objects move around within the space. For
now, the mass is determined by an object's importance (this is
determined by the number of active relationships it has with other objects in
the system). There are two types of force. All objects exert a repulsive force
on all other objects in the system. Attractive forces exist between related
objects. The velocity of an object through the world is determined by the
resultant force acting upon it.
This, relatively simple, model (which is based loosely on ARK
[2] [3])
can be very effective. Not only does it generate a
spatial layout where physical
distance is related to semantic distance, but it also reveals important (and
often previously obscured) structural information. Furthermore, it can lead to
otherwise anonymous clusters of objects being endowed with distinctive physical
shape (which aids recognition). In most cases the spatial layout quickly
develops into a fixed stable state but in some cases there is residual motion
with pulsating clusters due to the quantisation of time in the model for
self-organsation. (see Figure 1).
Dynamic Figure 1 (QuickTime Movie, about 1 mb)
The arrangment of objects in space.
The behaviour of the objects is presently very simple and could usefully
be extended.
A simple virtual reality system, where objects are organised in 3-dimensional
space, is by itself, a very powerful way to support the user. He or she can
navigate around the system to focus upon one part, whilst the other components
are either hidden from view or disappear into the distance. The effectiveness
can be increased by merging a cluster of objects so that, when viewed from a
distance, they appear to form a single distinctive object (See [5]
for
examples showing the effectiveness of similar approaches applied to
conventional graphical design). This is achieved by forming a surface around
the cluster which, as the cluster is approached, becomes increasing transparent
to reveal the internal structure (see Figure 2). Alternative approaches, which
we are investigating, are to use an iconic representation of the cluster or to
render the enclosing surface with an appropriate iconic texture.
Figure 2 - Clusters enclosed by translucent surface
The user can adjust the view of the world by selecting the objects and
relationships which are active as well as by adjusting the parameters which
control the behaviour of the objects within space. The user can also select
objects and inspect the methods etc. which are part of that object although it
is not presently possible to manipulate the code of the underlying program.
This work shows that using virtual reality techniques is an effective way to
support the user in visualising and manipulating complex object oriented
systems. The inherent structure that can be revealed through the self
organisation of such systems can be remarkable. Supporting a more sophisticated
rendering of the virtual reality (e.g. by merging a group of objects into a
single object when it is not a focus of attention) is valuable since it removes
distracting detail from the user. The approach used here allows this to be done
in a way which does not place a heavy burden on the user (e.g. through context
switching) since detail can be hidden and revealed smoothly and in a way which
is consistent with our navigation and experience of the real world.
This work is being extended in several directions. More sophisticated
behaviours can be attached to the objects relatively easily. The representation
and manipulation of the objects in the virtual reality is an area which needs
to be experimented with further. In particular, representations for supporting
different processes (e.g. program construction, debugging and maintenance),
need to be implemented and evaluated (e.g. we would like to include animation
of program execution and so on) as well as the extension of the metaphor down
to the level of program code (e.g. VR visual programming). We also intend to
extend the work to look at support for multi-agent (both human and machine)
working, to which this approach appears to be well suited.
1.
Sun Microsystems.
The SparcWorks Reference Manual.
SMCC (1994).
2.
Smith, R.B.
The Alternate Reality Kit: An Animated Environment
for Creating Interactive Simulations.
In Proceedings of 1986 IEEE Computer Society Workshop
on Visual Languages(1986) 99-106.
3.
Smith, R.B.
Experiences with the Alternate Reality Kit: An Example of the
Tension Between Literalism and Magic.
In Proceedings of the CHI+GI `87 Conference(1987) 61-67.
4.
Smith, R.B., Ungar, D.
SELF: The Power of Simplicity.
In OOPLSA `87 Conference Proceedings, Orlando, FL, 1987.
Published as SIGPLAN Notices 22(12), December, 1987.
Also published in Lisp and Symbolic Computation 4(3), June, 1991.
5.
Tufte, Edward R.,
Envisioning Information,
Graphics Press, Cheshire, USA. 1990.
Abstract
Keywords
VR, object-orientation, software visualisation, complex systems.
Introduction
SPATIAL ORGANISATION OF THE WORLD
VISUALISATION
SUMMARY
References