Abstract :
The Java language supports the use of monitors, sockets, and remote method invocation for concurrent programming. Also, Java classes can be defined to simulate other types of concurrent constructs. However, concurrent Java programs, like other concurrent programs, are difficult to specify, design, code, test and debug. In this paper, we describe the design of a toolset, called JaDA (Java Dynamic Analyzer), that provides testing and debugging tools for concurrent Java programs. To collect run-time information or control program execution, JaDA requires transformation of a concurrent Java program into a slightly different Java program. We show that by modifying Java classes that support concurrent programming, Java application programs only need minor modifications. We also present a novel approach to managing threads that are needed for testing and debugging of concurrent Java programs
Keywords :
high level languages; parallel programming; program debugging; program testing; software tools; JaDA; Java Dynamic Analyzer; Java application programs; Java classes; Java language; concurrent Java programs; concurrent constructs; debugging tools; dynamic analysis; monitors; remote method invocation; sockets; testing; Computer displays; Computer science; Debugging; Dynamic programming; Identity-based encryption; Information analysis; Java; Packaging; Runtime; Testing;