Software is becoming increasingly complex. Visualisation, which presents a high level view of a system, can assist programmers in constructing, debugging and maintaining programs, as well as being a useful teaching aid. To create visualisations of running programs, it is necessary to have access to program run-time information. Traditional means of collecting program monitoring information suffer from a range of problems, from not being able to collect a wide enough range of information, to being too intrusive by requiring modification of existing tools and source files. We present InspectJ, which is a program visualisation system that uses AspectJ to collect program monitoring information for visualisation. AspectJ is a Java-based aspect-oriented language. Its advantages are that it is non-intrusive, and therefore does not require modification of existing tools or source files, and that it is easy to use, by virtue of being Java-based. To explore and evaluate AspectJ for collecting object-oriented program monitoring information, we used AspectJ pointcuts and advice to create various visualisations in InspectJ. These visualisations include UML sequence diagrams of running programs and algorithm animations of sorting algorithms. With InspectJ, we also created domain specific visualisations for a Library system written in Java.
['Rilla Khaled', 'James Noble', 'Robert Biddle']
InspectJ: program monitoring for visualisation using aspectJ