Skip navigation

A gentle overview of software visualisation

A gentle overview of software visualisation

Petre, Marian and de Quincey, Ed (2006) A gentle overview of software visualisation. Psychology of Programming Interest Group (PPIG) Newsletter.

Full text not available from this repository.


Software design is a realm of messy or “wicked” problems that are often too big, too ill-defined, and too complex for easy comprehension and solution (DeGrace and Stahl, 1998). Software itself is created, complex, abstract, and difficult to observe. Software is different from created physical artefacts, because it lacks their tangibility and visibility (e.g., What does a compiler look like? What is the size, weight and shape of an operating system?). Code may be manifest, but how code works must be discovered and understood. Nevertheless, software interacts with objects in the physical world, often in complex and sophisticated ways. Software is dynamic, and software developers must reason not just about its properties, but about its behaviour – potentially complex behaviour – in time.
Moreover, software is created and maintained in a social and organisational context which itself changes over time. Software ages as this social and organisational context evolves: teams change, knowledge decays, documentation falls out of date, intentions and rationale are forgotten over time (Ball & Eick, 1996).
Software visualisation uses visual representations to make software more visible. Visualisation concerns the graphical (or semi-graphical) representation of information in order to assist human comprehension of and reasoning about that information. There are a number of loosely distinguished themes within visualisation, among them information visualisation (representation of large data sets), software visualisation (visualisation for software engineering), and program or algorithm visualisation (representation of the structure and behaviour of algorithms for educational purposes). Despite their different foci, they have much in common, in terms of issues, techniques, and vocabulary. For example, visualization for software engineering must also include representation of the structure and behaviour of algorithms, but typically within the context of large-scale software development and maintenance, rather than the educational context of first understanding the algorithm. This paper focuses on software visualisation, the application of graphical techniques to represent different aspects of software – such as the source code, the software structure, runtime behaviour, component interaction, or software evolution – in order to reveal patterns and behaviours that inform software comprehension through all stages of software development.
Software visualisation can range from simple ‘pretty printers’, which use typographic enhancements such as indentation and colour coding (e.g., Baecker and Marcus, 1990), to 3D ‘landscapes’ representing the structure of large software systems, to multiple, linked, dynamic visualisations of the interaction of system components at runtime. Price, Baecker and Small (1998) defined software visualisation as “…the use of the crafts of typography, graphic design, animation, and cinematography with modern human-computer interaction technology to facilitate both the human understanding and effective use of computer software”. Visualisations may be based on static structures (views of the source code), or generated from dynamic data generated at runtime (views of execution, whether data flow or control flow). Software visualisation has it roots in earliest software development practice, when programmers watched the lights on the computer’s control panel and listened to the sounds of disk access to try to understand what the program was doing in the absence of other perceivable cues.
This paper presents a brief review of visualisation of software for software professionals. It is by no means comprehensive, but rather is intended as a light overview, to provide entry points into the literature, indicate the current state of the art, and discuss some of the persistent issues. It does not describe systems in detail, rather it considers factors that relate software visualisations to the tasks involved in software development, and it signals some (but certainly not all) systems that address particular perspectives.

Item Type: Article
Additional Information: [1] This paper has also been published in the journal: Computer Society of India Communications, in 2006, ISSN 0970-647X.
Uncontrolled Keywords: software visualisation
Subjects: Q Science > QA Mathematics > QA76 Computer software
Pre-2014 Departments: School of Computing & Mathematical Sciences
Related URLs:
Last Modified: 14 Oct 2016 09:14

Actions (login required)

View Item View Item