A method for verifying concurrent Java']Java components based on an analysis of concurrency failures

被引:6
|
作者
Long, Brad
Strooper, Paul [1 ]
Wildman, Luke
机构
[1] Univ Queensland, Sch Informat Technol & Elect Engn, Brisbane, Qld 4072, Australia
[2] Oracle Corp, Australian Dev Ctr, Brisbane, Qld 4000, Australia
来源
关键词
concurrency; verification; testing; component; !text type='Java']Java[!/text;
D O I
10.1002/cpe.1063
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The Java programming language supports concurrency. Concurrent programs are harder to verify than their sequential counterparts due to their inherent non-determinism and a number of specific concurrency problems, such as interference and deadlock. In previous work, we have developed the ConAn testing tool for the testing of concurrent Java components. ConAn has been found to be effective at testing a large number of components, but there are certain classes of failures that are hard to detect using ConAn. Although a variety of other verification tools and techniques have been proposed for the verification of concurrent software, they each have their strengths and weaknesses. In this paper, we propose a method for verifying concurrent Java components that includes ConAn and complements it with other static and dynamic verification tools and techniques. The proposal is based on an analysis of common concurrency problems and concurrency failures in Java components. As a starting point for determining the concurrency failures in Java components, a Petri-net model of Java concurrency is used. By systematically analysing the model, we come up with a complete classification of concurrency failures. The classification and analysis are then used to determine suitable tools and techniques for detecting each of the failures. Finally, we propose to combine these tools and techniques into a method for verifying concurrent Java components. Copyright (c) 2006 John Wiley & Sons, Ltd.
引用
收藏
页码:281 / 294
页数:14
相关论文
共 50 条
  • [21] Design of a toolset for dynamic analysis of concurrent Java']Java programs
    Bechini, A
    Tai, KC
    6TH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION (IWPC 98) - PROCEEDINGS, 1998, : 190 - 197
  • [22] A practical MHP information analysis for concurrent Java']Java programs
    Li, L
    Verbrugge, C
    LANGUAGES AND COMPILERS FOR HIGH PERFORMANCE COMPUTING, 2005, 3602 : 194 - 208
  • [23] Writing concurrent Java']Java programs based on CafeOBJ specifications
    Ha, Xuan-Linh
    Ogata, Kazuhiro
    2017 24TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2017), 2017, : 618 - 623
  • [24] Exogenous coordination of concurrent software components with Java']JavaBIP
    Bliudze, Simon
    Mavridou, Anastasia
    Szymanek, Radoslaw
    Zolotukhina, Alina
    SOFTWARE-PRACTICE & EXPERIENCE, 2017, 47 (11): : 1801 - 1836
  • [25] Event-based design of concurrent programs with Java']Java implementation
    Rischel, H
    Sun, HY
    COMMUNICATING PROCESS ARCHITECTURES 2001, 2001, 59 : 117 - 128
  • [26] A Java']Java based analysis environment
    Johnson, AS
    HEPVIS96 WORKSHOP ON VISUALIZATION IN HIGH-ENERGY PHYSICS, 1997, 97 (01): : 145 - 149
  • [27] Field escape analysis for data confidentiality in Java']Java components
    Shi, Aiwu
    Naumovich, Gleb
    14TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2007, : 143 - +
  • [28] Static analysis for computing escapability and mutability for Java']Java components
    Shi, AW
    Naumovich, G
    FIFTH IEEE INTERNATIONAL WORKSHOP ON SOURCE CODE ANALYSIS AND MANIPULATION, PROCEEDINGS, 2005, : 119 - 128
  • [29] Vul4Java']Java: A Java']Java OSS vulnerability identification method based on a two-stage analysis
    Wang, Zhuo
    Hu, Jiahao
    Zhou, Yijun
    Tambadou, Sidy
    Zuo, Fang
    PROCEEDINGS OF INTERNATIONAL CONFERENCE ON ALGORITHMS, SOFTWARE ENGINEERING, AND NETWORK SECURITY, ASENS 2024, 2024, : 742 - 746
  • [30] A Java']Java virtual machine design based on hybrid concurrent compilation model
    Zheng, WM
    Zheng, FZ
    Yang, B
    Wang, YL
    36TH INTERNATIONAL CONFERENCE ON TECHNOLOGY OF OBJECT-ORIENTED LANGUAGES AND SYSTEMS, PROCEEDINGS, 2000, : 18 - 23