Peter Young
Visualisation Research Group

3D Software Visualisation

Visualisations and Representations

Peter Young
Visualisation Research Group
The Centre for Software Maintenance

Department of Computer Science
University of Durham

E-mail :

1. Introduction

The intention of this research is to investigate the application of 3D graphics and VR technology to the visualisation of software systems. Much research has already been performed in the area of software visualisation, but relatively little work has been done which utilises the powerful and rapidly growing applications of 3D computer graphics [Young96b]. More traditional software visualisation systems rely heavily on displaying directed graphs of various aspects of a software system. While such graph structures are extremely useful for small collections of information, solutions must still be found to enable the effective management of the large collections of information which are common to modern software systems. This research will investigate other representations, visual abstractions and appropriate metaphors which make full use of the 3D virtual environment.

The main goals of this research are:

Most software engineers are generally aware of the field of software visualisation and will have at some point used or experienced some form of software visualisation tool. Less well known is the field of 3D software visualisation and information visualisation, the purpose of this report is to give a brief introduction to these areas prior to discussing the progress of this project.

2. Software visualisation

2.1. What is it?

Software visualisation is a very diverse field which encompasses a large number of research threads. Similarly there are many definitions and interpretations of the term "software visualisation", though generally they all mean or imply something to the effect of "enhancing or aiding the understanding of a software system using visual representations and other media".

The area in which this research is concentrating is on providing visualisations of code level abstractions. That is, working from the source code upwards, in the worst case scenario of having nothing but the code itself to work on. In this case, all knowledge of how the program is structured, how it operates and what it’s limitations are must be derived primarily from the source code alone.

2.2. Why do we need it?

In simple programs this task is often time consuming yet perfectly feasible. However, for medium to large scale software systems this task becomes immensely complicated and subsequently very costly in terms of resources and maintenance time. Software maintenance is already a hard task but coupled with the rapidly increasing size and complexity of software systems means it isn’t likely to get any easier.

Large software systems are beyond the capacity of a single person to comprehend and generally require a team of maintainers to tackle any work on them. Each of these maintainers must not only be able to extract information about the system, but must also effectively communicate that knowledge to other maintainers. Visualisation is an excellent medium to communicate information and should prove useful in supplying the program information to the maintainer, but also allowing shared access to this information for a group of maintainers. Visualisation could offer a shared, consistent and persistent view of a software system.

2.3. Problems with software visualisation

Although software visualisation has many advantages which it could offer, there are also a large number of problems which must first be addressed:

3. Virtual reality

Virtual reality has received a lot of attention recently, particularly in the press, and has led to many misconceptions and exaggerated claims. The goals of Virtual Reality are relatively clear, that of creating the illusion of submersion in a computer generated environment. Although this is generally associated with various novel interface and display techniques, these are not seen as a pre-requisite for virtual reality more as an aid or enhancement. A very high level of involvement or feeling of immersion within a virtual environment can be achieved using standard interfaces and displays (i.e. mice and monitors), the computer games industry being a prime example of this success. The virtual reality in our opinion is not created by the realism of the images or quality of the rendering, it is created by the ability to interact and navigate comfortably through a computer generated environment.

Virtual reality and 3D graphical environments are already becoming commonplace on home computers and are increasingly popular with computer games. Although the methods for interacting with these environments remain relatively simple, they still provide a very immersive experience. Such technology has been exploited greatly in the area of Data Visualisation with excellent results, and it is being used increasingly in information and software visualisation.

The power of virtual reality comes from it’s concept, not the state of current technology. The concept to produce an immersive and fully interactive environment constructed from real world objects or from more abstract information opens up infinite possibilities. Effectively this concept means we can reproduce real world objects and facilities, such as a virtual workstation, desk or work area, but we also have the power to create facilities and tools which are not possible or not feasible in the real world.

4. Research focus

The main goal of this research is to investigate the application of 3D graphics and VR technology to software visualisation. This includes investigating the feasibility and worth of such an approach. In this work we are concentrating on visualising software structures and other static information about a software system, such as software metrics or analysis information.

One of the driving ambitions in this research is to move away from the standard views of software systems, which typically consist of directed graphs showing relationships between components. The aim is to investigate other visualisations, representations and appropriate metaphors which make full use of the 3D environment.

The problem of software visualisation in general can be classified into six discrete areas which must be addressed. These areas are representation, abstraction, navigation, correlation, interaction and automation (described in more detail later). This research will also investigate the individual problems posed in these areas.

4.1. Application of 3D to software visualisation

The application of 3D graphics to software visualisation should not be seen as a cure-all for visualisation problems, it simply provides another presentation medium which allows a greater spatial freedom. It is unlikely that 3D software visualisations will completely replace more traditional 2D methods though they will hopefully provide a useful addition to them. As with 2D software visualisations, 3D visualisations have both advantages and disadvantages.

3D virtual environments offer a number of advantages for visualising information or software systems. Some of these are:

Some of the disadvantages can be easily experienced when first attempting to navigate a 3D visualisation, such as:

4.2. 3D Information visualisation

A closely related area to 3D software visualisation is that of 3D information visualisation. Both areas are attempting to visualise large, complex and inherently abstract information structures. The field of 3D information visualisation has received significantly more attention and a large amount of research has been performed [Young96]. A great deal of this research is directly relevant to software visualisation and advances in this field are of great interest.

Software systems are essentially information artefacts and bear similar properties to information structures such as document collections. Such collections also suffer from the problems of size and complexity and much of the research into information visualisation addresses these problems. Also investigated is the subject of collaborative working within virtual environments which is of great relevance when considering that most software maintenance projects are managed by a team of maintainers.

4.3. 3D Software visualisation

Preliminary work in this project has identified the problems of 3D software visualisation and highlighted the areas which require further investigation. The main areas in 3D software visualisation which we need to address are representation, abstraction, navigation, correlation, integration and automation.

5. Visualisations and representations

Current work in this research has concentrated on identifying properties of a visualisation which are desirable and also producing simple example visualisations to generate discussion and promote new ideas. To derive properties which we believe are desirable in a visualisation, we found it necessary to divide the concept of a visualisation into two distinct units. These units have been termed Visualisations and Representations. The properties and goals of these two divisions vary sufficiently to warrant a distinction between them.

Effectively, representations are the graphical symbols used in a visualisation to depict each of the sub- components. For example, in a typical graph such as a call-graph or control-flow graph, the graph itself is the visualisation while the nodes are the representations. These terms are, however, fairly interchangeable and depend greatly on the level of abstraction and amount of detail being presented. A graphical object can be both a representation within one context and a visualisation within another. For example, if a node in the graph provided further information on the structure or qualities of the function it represented then in the context of the software system (i.e. the graph) it is a representation, whereas in the context of the function (i.e. the node) it is a visualisation of further information on that function. In such cases we must consider carefully the structure and properties of the object both as a visualisation and as a representation and also in the transition between them.

5.1. Desirable properties of a representation

The following list highlights some important properties which must be considered when creating a representation. Several of these properties are mutually exclusive, thus a good representation will achieve a suitable compromise between them or show preference to particular attributes for specific purposes.

5.2. Desirable properties of a visualisation

The following list highlights some important qualities which must be considered when designing a visualisation. As with the representations, many of these qualities are mutually exclusive and a compromise must be made.

6. Concept demonstrators

A number of concept demonstrators have been created manually in order to flesh out some of the ideas and visualisations created in this research so far. All of the visualisations and representations developed have been based upon actual source code, ranging from small ‘toy’ programs to moderately sized, non-trivial programs. This section will briefly describe all of the visualisations and representations produced so far. Further information, screen-shots and the actual virtual worlds for these visualisations can be found on-line, the URL is given at the end of this document.

6.1. Zebedee

Zebedee [Burd96, Young96b] was the first attempt at creating a 3D software visualisation and simply recreated similar work by a number of other researchers [Drew95, Kings95, Fairchild88]. The aim was to enable us to gain a feel for the problem and see how effective this technique was. Zebedee was effectively a mapping from a standard 2D call-graph into 3D using a force-directed placement algorithm. We found that as with 2D graphs, size and complexity rapidly became problematic and could render such an approach useless.

6.2. Planes

The planes visualisation is a simple concept which concentrates on providing a structural overview of a software system, effectively producing a map or terrain from it. It provides an instant view of the control structure of functions, and also permits simple visual metrics or judgements to be made as to the complexity or design of those functions. Planes does not attempt to visualise any detail of the software, the aim is simply to endow the software with a visual form thus allowing the viewer to engage more natural skills in navigating and orientating themselves within it.

6.3. CallStax

CallStax [Young97] is an attempt at simplifying the inherently complex structure of relational data such as function call-graphs or file dependency information. The goal of CallStax is to shift some of the complexity load from the graphical system to the cognitive abilities of the user. The aim was to create a less cluttered and more flexible visualisation by reducing graphical complexity, the idea being that this would offset the increased comprehension load on the user. CallStax has both important advantages but also significant disadvantages, the most problematic being the need for unique and distinctive representations of the different nodes.

6.4. Towers

Towers (and Axles below) attempted to address the problem of creating unique and distinctive representations for CallStax. The towers representation encodes various aspects and metrics of the component (in this case functions) into the visual representation. This works in creating a unique representation for all the nodes used in CallStax. Unfortunately, the towers representations were far from distinctive and once several were grouped together it required a significant amount of time and concentration to distinguish slightly different or identical representations.

6.5. Axles

Similar to towers, Axles addressed the problem of creating unique and distinctive representations for CallStax. This took the opposite view of the Towers representation and created very distinctive representations based on the control structure of the function it was representing. Unfortunately, while being very distinctive, the Axles representation lacked a unique identity and it was easily possible for two different functions to appear identical. Additionally, the dimensions of the Axles representations were not fixed, making them unsuitable for inclusion within CallStax.

6.6. FileVis

FileVis is the largest and most complex visualisation produced during this project and it presents a medium sized program in its entirety. FileVis attempts to create a landscape or terrain from the software system, effectively giving it a physical (visual) form which can be explored intuitively. FileVis presents the software system as a whole and shows at a glance the structure of the files and their contents with various metrics and structural information readily available. Another feature incorporated into the FileVis visualisation is the ability to move in closer to inspect an item of interest, say a particular function, and obtain more detailed information as you approach it.

6.7. Software City

Software City (SoftCity) is the latest visualisation developed which attempts to exploit the use of metaphors to a greater extent. Whereas the other visualisations produced so far have concentrated on producing abstract visualisations, SoftCity takes the approach of producing an apparently realistic environment and mapping the information onto attributes of this environment. SoftCity appears as a city, including roads, buildings and even people. Attributes of the software are then mapped onto features in the city, for example as revisions are made to the software then the corresponding parts of the city will appear more run-down or more ‘used’. As certain areas of the code receive frequent revisions or maintenance, then that area of the city will begin to look worse. Eventually this may result in districts or divisions forming, such as a ‘downtown’ area of code in which maintainers’ know that the majority of the problems or effort will be placed.

7. Future directions

There are many possible directions in which this research could continue. This section describes the short term goals which are within the scope of this project, but also highlights some possibilities for long term research.

7.1. Short term

At present our research has only suggested a small number of possible ideas and visualisations, the majority of these based around the same core concepts - that of visualising control structure and metric information. We will also be investigating what other information should be provided and also other means of providing it within the visualisations. In particular we will investigate utilising more powerful metaphors (as in Software City) in creating a more familiar environment for the users of the visualisation. By using metaphors which introduce familiar concepts we can greatly decrease the time required to become familiar with a visualisation.

Almost all of the visualisations produced so far have been created by hand (Zebedee being the exception). This has allowed maximum flexibility in designing their structure and evaluating new features. The aim now is to concentrate on one particular style of visualisation and automate it’s production so it can be applied to visualising other software systems. It should prove interesting to see the various ‘shapes’ and configurations produced by different systems. This could possibly lead to some simple visual characteristics or visual metrics which can be found in well structured and badly structured systems. In any respect, applying the visualisations to a number of different software systems should also highlight problems and limitations with their concept and hopefully also highlight which features are useful and which are not. Further more, automation will also allow simple case studies to be made to evaluate the effectiveness of the visualisations produced

7.2. Medium term

All software visualisations shown here are presenting syntactic information on the system they are modelling. An area which could prove very valuable would be to incorporate some semantic meaning into these representations. This information is extremely difficult to extract automatically, but it would be possible for the maintainer to assign meaning to various parts of the software as their understanding of it grows. This meaning could be incorporated in some form into the visualisation and would then serve both as a reminder for the same maintainer, but also as valuable additional information for other maintainers using the visualisation.

It would also prove an interesting concept to be able to visualise dynamic program information, for example execution traces or data manipulation. This information could be presented in the form of animation within the visualisation - effectively allowing the maintainer to watch the operation of the program from the inside. Along a similar notion, a dynamic visualisation showing the software at various stages of it’s evolution would show how the maintenance has changed it’s overall structure and possibly enable the tracking of problem areas as they are developing.

In order to produce useful visualisation systems using VR technology, it will be necessary to develop a number of virtual tools to allow the user to interact with the visualisations and to gain additional information not immediately available. Such tools could possibly allow the maintainer to change the visualisation and in doing so, change the underlying software system - one such metaphor could allow ‘pruning’ away unused or inaccessible code. The theoretically limitless capabilities afforded by virtual reality allow the development of almost any form of maintenance tool we could dream of. By combining a tangible image of a software system and tools to manipulate that system we come one step closer to a fully immersive software engineering environment.

7.3. Long term

The long term goal would be to develop a fully immersive software maintenance environment which could support collaborative work. This would allow teams of maintainers to work on the same system and be able to interact with other maintainers or be aware of their interests and area of work. This system would enable the actual maintainers to be distributed geographically yet still be involved with all other maintainers on the same project. One of the main points made in the field of information visualisation when concerning multi-user document collections, is that if you need to know something about a particular area or subject then you can approach another user who is operating within the same area. This would also apply to collaborative software visualisations.

8. Further Information

Further information and documents can be found at the following URL:

Demonstrations and explanations of the various visualisations described above can be found at the URL below. Additional software (available via this page) will be required in order to view the 3D visualisations.

9. References

J.A. Adam,
Virtual Reality Is For Real,
IEEE Spectrum, Vol. 30, No. 10, October 1993,
pages 22-29.

M. Benedikt,
Cyberspace: Some Proposals,
In "Cyberspace: First Steps", MIT Press, 1991,
pages 119 - 224.

E.L. Burd, P.S. Chan, I.M.M. Duncan, M. Munro and P. Young,
Improving Visual Representations of Code,
Technical Report 10/96, Centre for Software Maintenance,
Department of Computer Science,
University of Durham, February 1996.

N. Drew and R. Hendley,
Visualising Complex Interacting Systems,
School of Computer Science, University of Birmingham, 1995.

K.M. Fairchild, S.E. Poltrock and G.W. Furnas,
Semnet: Three-dimensional Graphic Representations of Large Knowledge Bases,
in "Cognitive Science and Its Applications for Human-Computer Interaction",
Fairlawn, NJ: Lawrence Erlbaum Associates, 1988.

R. Ingram and S. Benford,
Legibility Enhancement for Information Visualisation,
Proceedings of Visualisation '95,
Atlanta, Georgia, October 30th - November 3rd, 1995.

N.J. Kings,
Software Visualisation,
BT Corporate Research Programme, 1995.

K. Lynch,
The Image of the City,
M.I.T. Press, 1960.

P. Young,
Three Dimensional Information Visualisation,
Technical Report 12/96, Centre for Software Maintenance,
University of Durham, March 1996.

P. Young,
Software Visualisation,
Internal Report, Centre for Software Maintenance,
University of Durham, June 1996.

P. Young and M. Munro,
A New View of Call Graphs for Visualising Code Structure,
Technical Report 03/97, The Centre for Software Maintenance,
University of Durham, April 1997.

This page is maintained by Peter Young, please send any comments, jokes, insults or general abuse to (

Last updated: Tuesday 20 May, 1997.