Applying static analysis to large-scale, multi-threaded Java']Java programs

被引:25
作者
Artho, C [1 ]
Biere, A [1 ]
机构
[1] Swiss Fed Inst Technol, ETH Zentrum, Inst Comp Syst, CH-8092 Zurich, Switzerland
来源
2001 AUSTRALIAN SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS | 2001年
关键词
D O I
10.1109/ASWEC.2001.948499
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:68 / 75
页数:8
相关论文
共 32 条
[1]  
[Anonymous], MODEL CHECKING
[2]  
Ball T., 2000, Tech. Rep. MSR Tech. Rep. 2000-14
[3]  
BALL T, 2001, LNCS, V2031, P158
[4]  
BRAT G, 2000, WORKSH ADV VER JUL
[5]  
BRUENING D, 1999, THESIS MIT
[6]  
CHAMILLARD AT, 1996, THESIS U MASSACHUSET
[7]  
CORBETT J, 1996, IEEE T SOFTWARE ENG, V22
[8]  
CORBETT JC, 2000, P 22 INT C SOFTW ENG
[9]  
Detlefs D. L., 1998, Extended static checking
[10]  
Dijkstra E. W., 1968, Programming languages, P43