Title :
Applying static analysis to large-scale, multi-threaded Java programs
Author :
Artho, Cyrille ; Biere, Armin
Author_Institution :
Inst. of Comput. Syst., Swiss Fed. Inst. of Technol., Zurich, Switzerland
Abstract :
Static analysis is a tremendous help when trying to find faults in complex software. Writing multi-threaded programs is difficult, because the thread scheduling increases the program state space exponentially, and an incorrect thread synchronization produces faults that are hard to find. Program checkers have become sophisticated enough to find faults in real, large-scale software. In particular, Jlint, a very fast Java program checker; can check packages in a highly automated manner. The original version, Jlint1, still lacked full support for synchronization statements in Java. We extended Jlint1´s model to include synchronizations on arbitrary objects, and named our version Jlint2. Our statistical analysis proves that these extensions are relevant and useful. Applying Jlint2 to various large software packages, including commercial packages from Trilogy, found 12 faults, two of which related to multi-threading
Keywords :
Java; automatic programming; multi-threading; program diagnostics; synchronisation; Jlint1; Jlint2; Trilogy; arbitrary objects; automated program checking; commercial packages; complex software faults; flint; large software packages; large-scale multi-threaded Java programs; multi-threaded programs; multi-threading; program checkers; program state space; real large-scale software; static analysis; statistical analysis; synchronization statements; thread scheduling; thread synchronization; very fast Java program checker; Java; Large-scale systems; Packaging; Processor scheduling; Software packages; Space technology; State-space methods; System recovery; Writing; Yarn;
Conference_Titel :
Software Engineering Conference, 2001. Proceedings. 2001 Australian
Conference_Location :
Canberra, ACT
Print_ISBN :
0-7695-1254-2
DOI :
10.1109/ASWEC.2001.948499