Trace based debugging and visualisation of concurrent Java programs with UML

نویسنده

  • Katharina Mehner-Heindl
چکیده

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 neither well documented nor do tools like debuggers allow developers to identify them at runtime. This thesis analyses and classifies liveness failures, a special kind of concurrency failures, and the associated potentials in Java. A UML statechart is developed that models the interaction of Java threads. Liveness failures and potentials are specified formally in terms of the states controlling the interaction of threads and in terms of the events exchanged by interacting threads. Detection algorithms are developed to identify the specified failures in a program execution. A UML profile extending UML interaction diagrams is developed to visualise the execution of concurrent Java programs and detected liveness failures and potentials. In order to deploy the algorithms and the UML profile, tool support concepts are provided. This involves the specification of a trace format and a tracing method to collect execution data from a running Java program, and the specification of methods to analyse the trace and to visualise the trace and the analysis results. The concepts are implemented in the JAVIS prototype, which consists of a Java tracer with an analysis facility for monitoring liveness in concurrent Java programs, and a plug-in extension to the UML CASE tool Together for importing and displaying concurrent Java traces including failures and potentials.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

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...

متن کامل

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 collec...

متن کامل

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...

متن کامل

A Conceptual Model for Visualising Concurrent Java Programs Using UML

Understanding concurrent object-oriented software execution is not a trivial task. This is mainly due to the interleaving of threads, and multiple flows of control that result in different outputs being produced at successive executions of the program. We believe that visualisation can be of assistance to developers in expediting the comprehension of concurrent object-oriented software. In this...

متن کامل

Lock Removal for Concurrent Trace Programs

We propose a trace-based concurrent program analysis to soundly remove redundant synchronizations such as locks while preserving the behaviors of the concurrent computation. Our new method is computationally efficient in that it involves only thread-local computation and therefore avoids interleaving explosion, which is known as the main hurdle for scalable concurrency analysis. Our method buil...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005