JaVis: A UML-Based Visualization and Debugging Environment for Concurrent Java Programs
نویسنده
چکیده
Debugging concurrent Java programs is a difficult task because of multiple control flows and inherent nondeterminism. It requires techniques not provided by traditional debuggers such as tracing, visualization, and automated error analysis. Therefore, we have developed the JaVis environment for visualizing and debugging concurrent Java programs. The information about a running program is collected by tracing. The Unified Modeling Language (UML) is used for the visualization of traces. Traces are automatically analyzed for deadlocks. The tracing is implemented using the Java Debug Interface (JDI) of the Java Platform Debugger Architecture. The visualization is integrated into the UML CASE tool Together.
منابع مشابه
Trace based debugging and visualisation of concurrent Java programs with UML
This thesis describes an approach for automated detection of concurrent liveness failures in the execution of Java programs. Concurrent programs are highly prone to failure because of the inherent nondeterminism. Developers of concurrent Java programs are not well supported in detecting concurrency failures, i.e. failures that are due to interactions between multiple threads. These failures are...
متن کاملVisualizing the Synchronization of Java-Threads with UML
Concurrent programming is a complex task, even with modern languages such as Java who provide languagebased support for multithreading and synchronization. In addition to typical errors from sequential programming concurrent programming is prone to security and lifeness errors, which are difficult to detect due to the inherent nondeterminism in concurrent programs. While debugging is still main...
متن کاملMultithreaded Dependence Graphs for Concurrent Java Programs
Understanding program dependencies in a computer program is essential for many software engineering activities including program slicing, testing, debugging, reverse engineering, and maintenance. In this paper, we present a dependence-based representation called multithreaded dependence graph, which extends previous dependence-based representations, to represent program dependencies in a concur...
متن کاملJACOT: a tool to dynamically visualise the execution of concurrent Java programs
The introduction of concurrency within emerging languages such as Java brings challenging new concepts to the user. Owing to the inherent non-determinism of threads and multiple flow of control in concurrent programs, traditional debugging and comprehension techniques, such as source code analysis, do not suffice. We believe that visualisation can assist in expediting comprehension of concurren...
متن کاملAn Overview of the Indus Framework for Analysis and Slicing of Concurrent Java Software
Program slicing is a program analysis and transformation technique that has been successfully applied in a wide range of applications including program comprehension, debugging, maintenance, testing, and verification. However, there are only a few full-featured implementations of program slicing that are available for industrial applications or academic research. In particular, very little tool...
متن کامل