TraceVisReport2011.pdf (original) (raw)

Trace visualization for program comprehension: A controlled experiment

2009

Understanding software through dynamic analysis has been a popular activity in the past decades. One of the most common approaches in this respect is execution trace analysis: among our own efforts in this context is EXTRAVIS, a tool for the visualization of large traces. Similar to other trace visualization techniques, our tool has been validated through anecdotal evidence, but should also be quantitatively evaluated to assess its usefulness for program comprehension.

Towards a Multi-View Trace Visualization Environment

2007 Canadian Conference on Electrical and Computer Engineering, 2007

Information systems are in the process of undergoing significant transformations triggered by the Internet technology. However, most existing systems suffer from poor to non-existent documentation, which makes the maintenance process a daunting task even for a skilled software engineer. As a result, software engineers are often faced with the inevitable problem of understanding different aspects of the system before undertaking a simple maintenance task. This paper describes ongoing research in the area of program comprehension that aims at investigating efficient techniques for the understanding of the dynamics of software systems with a particular emphasis on information systems. The proposed approach is based on the analysis of system's execution traces. The long-term objective is to create effective tool support for software engineers working on maintenance tasks.

SEAT: A usable trace analysis tool

2005

Abstract Understanding the dynamics of a program can be made easier if dynamic analysis techniques are used. However, the extraordinary size of typical execution traces makes exploring the content of traces a tedious task. In this paper, we present a tool called SEAT (software exploration and analysis tool) that implements several operations that can help software engineers understand the content of a large execution trace. Perhaps, the most powerful aspect of SEAT is the various filtering techniques it incorporates.

Visualizing similarities in execution traces

2007

The analysis of execution traces is a common practice in the context of software understanding. A major issue during this task is scalability, as the massive amounts of data often make the comprehension process difficult. A significant portion of this data overload can be attributed to repetitions that are caused by, for example, iterations in the software's source code.

Live trace visualization for comprehending large software landscapes: The ExplorViz approach

2013 First IEEE Working Conference on Software Visualization (VISSOFT), 2013

The increasing code complexity in modern enterprise software systems exceeds the capabilities of most software engineers to understand the system's behavior by just looking at its program code. Large software landscapes, e.g., applications in a cloud infrastructure, further increase this complexity.

A Visual Notation for Succinct Program Traces

2021 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2021

Program traces are often used for explaining the dynamic behavior of programs. Unfortunately, program traces can grow quite big very quickly, even for small programs, which compromises their usefulness. In this paper we present a visual notation for program traces that supports their succinct representation, as well as their dynamic transformation through a structured query language. An evaluation on a set of standard examples shows that our representation can reduce the overall size of traces by at least 79%, which suggests that our notation is an effective improvement over the use of plain traces in the explanation of dynamic program behavior.

A survey of trace exploration tools and techniques

2004

The analysis of large execution traces is almost impossible without efficient tool support. Lately, there has been an increase in the number of tools for analyzing traces generated from object-oriented systems. This interest has been driven by the fact that polymorphism and dynamic binding pose serious limitations to static analysis. However, most of the techniques supported by existing tools are found in the context of very specific visualization schemes, which makes them hard to reuse. It is also very common to have two different tools implement the same techniques using different terminology. This appears to result from the absence of a common framework for trace analysis approaches. This paper presents the state of the art in the area of trace analysis. We do this by analyzing the techniques that are supported by eight trace exploration tools. We also discuss their advantages and limitations and how they can be improved.

Visualizing Traceability Information with iTrace

The key role of models in Model-Driven Engineering (MDE) provides a new landscape for dealing with traceability. However, despite the certain maturity reached by some MDE tools, providing efficient views of traceability data is still in its early stages. To contribute in this direction, this work introduces the visualization mechanisms provided by iTrace, a framework for the management of traceability in MDE projects. In particular, a multipanel editor for trace models supports the low-level edition of traceability data whereas different dashboards provide high-level views of such data. Both proposals are illustrated by means of a running example.

Aspects and Taxonomy of Program Visualisation

Software Visualisation, 1996

Program visualisation focuses on the graphical representation of an executing program and its data. The information is presented in a form designed to enhance both the understanding and productivity of the programmer through the e cient use of the human visual system. The programmer is able to observe patterns of behaviour within the executing code and rapidly detect a departure from the expected behaviour pattern. However, depending on the programming paradigms and architectural platforms utilized, the variety and manner in which information is best presented varies. This chapter attempts to discuss the general aspects of program visualisation, including the variety of purposes, the general steps needed to provide such visualisation, and the ideals that a program visualisation tool can achieve. The requirements for visualization systems also vary across architectural platforms, and software systems, which include programming paradigms and the system environment. Some representative visualisation systems are also presented and examined, providing an overall view of the practice and the achievements made to date in program visualisation.