MRE: A Flexible and Customisable Program Visualisation Architecture
Human Cognition Research Laboratory
The Open University
Milton Keynes, England, MK7 6AA.
Tel: [+44] (0)908 65 5015
FAX: [+44] (0)908 65 3169
email: [email protected]
Abstract: In this paper we are going to look at how we can extend basic visual metaphors? to produce higher level descriptions of? program execution that allow the user's to express? their own perspectives or models on the task? and produce tools accordingly. We shall show? how this can be done by adapting a model of? event recognition using agents, demonstrate how these agents are useful in their own right, and? then embed such definitions within templates? to generate new visualisations. The aim is thus? to bring increased flexibility and expressability? to programmers in order to aid software tool? based problem solving, and enable them to build increasingly abstract models of their domain? and debug programs from this particular? perspective level.
The work reported here has as its goals? finding new and useful ways of letting the users? explore visually, information about their? program's execution. Implicit within this view are? three central assumptions
? program visualisation provides a? good way of demonstrating the working of a programming language. These visualisations? can be used for tracing and debugging, as well as being useful in an education context
? the underlying visualisations? themselves are not the whole story. The user has to manipulate and interact with these notations? in order to get at the information they require. ? Hence the task of program visualisation research is? not just about finding better notations, but? also finding ways of using and interacting with? these notations
? There is a great need to provide flexibility and customisation within a tool. ? This is not least the case in programming where? large individual differences have been noted (e.g. Brooks, 1980). Further, as noted by Green (1989),? how good a particular notation is, is dependent on? the task you are trying to perform with it.
In this paper I wish to develop the third of? these tenets more fully. I will show how we can? move to greater flexibility by letting the user's? build their own visual models of the software? by generating new visualisations using? pre-defined