Program comprehension is the process in which software engineers develop models of a software system's architecture, purpose and behaviour in order to gain an understanding of the system. Much work has been carried out into how software engineers go about understanding software. During understanding software engineers analyse a system and develop mental models from various aspects of a system. In order to support software engineers in generating these models and in carrying out understanding tasks it is necessary to provide an information base for the information captured about a system and to provide a set of tools to carry out various analyses. One way to support comprehension of a software system is to help to bridge the gap between the models generated by the tools and the software engineer's mental model of the system. One way to assist in achieving this is the use of visualisation techniques that will convey information to the software engineer in an abstract, pictorial manner and allow them to invoke exploration, analysis and abstraction operations by direct manipulation through pictures.
This poster outlines a framework that we are developing to support program comprehension activities. The framework includes an Information Model and visualisation tools. Information is captured from the source software through reverse engineering analyses and is modelled within the Information Model. The model consists of multiple layers of information that represents information that can be obtained directly from the software (such as control-flow, data-flow, data usage and decomposition slices) and analysing the Information Model to build higher-level abstractions of the information contained within it.
The visualisation tools enable visualisation, exploration and manipulation of the information in the Information Model. These activities support software engineers in carrying out program comprehension. Various pictorial representations can be presented to a software engineer and the engineer can manipulate these objects and carry out further analyses on selected objects.
This poster presents our current research and development work on the framework. We also outline future research and development that we are planning.