Abstract :
The cost of maintaining an existing software system is estimated to be 70% of the total cost of its life-cycle. This is due to the fact that software engineers must understand different aspects of software before they can make changes that preserve reliability and other system attributes. In an "ideal" environment, design decisions would be based on information kept in up-to-date documentation. However, for a variety of reasons, maintaining sufficiently good documentation has been found to be impractical in many organizations. In this paper, we are concerned with program comprehension techniques tuned towards the understanding of the behavioural aspects of a software system. Such techniques include the analysis of execution traces. Traces, however, can be extremely large, often millions of lines long. Existing trace analysis tools have been surveyed and found to be limited to cope with the complexity of typical traces. This limitation is attributable to the fact that most tools focus on one type of traces only, e.g. traces of procedure calls. In this paper, we discuss the steps to take towards the design of a multi-view trace visualization environment. The objective is to provide effective support for program comprehension across a wide range of maintenance tasks. The main practical result is a working tool that incorporates various views of the system\´s behaviour. Each view represents a different type of traces. The views will be linked to allow software engineers to navigate from one to another, enabling them to analyse the system dynamics at different levels of abstraction. The paper discusses the components of such environment and the key challenges that need to be addressed.
Keywords :
software engineering; design decisions; multiview trace visualization; program comprehension techniques; software engineers; software system; Costs; Documentation; Instruments; Life estimation; Maintenance engineering; Reliability engineering; Software maintenance; Software systems; Software tools; Visualization;