This research addresses the problems of visualising large complex software systems. The main aims are to reduce complexity, aid understanding and to be capable of dealing with different levels of abstraction. Abstraction levels are important to support the different cognitive aspects of the program comprehension process, and to allow the extensibility of the visualisations to large systems.
Program comprehension is an important and major part of the maintenance and evolution of software.
Software does have to evolve over time to remain useful, and this evolution requires change. In order to make changes the structure and functionality of the system has to be understood. One way to facilitate this understanding is through visualisation. For many years basic visualisation, based around simple boxes and lines, has been done in an attempt to ease some of the cognitive overload caused by program comprehension. The problems with such visualisations is that they can very easily become incomprehensible themselves by trying to force large amounts of information into a small space, relying solely on two dimensions for the representations and because generally the information is presented in a static way.