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 条
  • [1] A method for verifying concurrent Java components based on an analysis of concurrency failures
    Long, Brad
    Strooper, Paul
    Wildman, Luke
    Concurrency and Computation: Practice and Experience, 2007, 19 (03): : 281 - 294
  • [2] Mutation-based exploration of a method for verifying concurrent Java components
    Long, Brad
    Duke, Roger
    Goldson, Doug
    Strooper, Paul
    Wildman, Luke
    Proceedings - International Parallel and Distributed Processing Symposium, IPDPS 2004 (Abstracts and CD-ROM), 2004, 18 : 3633 - 3640
  • [3] Java']Java annotated concurrency based on the concurrent package
    Zhu, Hong
    Yin, Zhaolin
    Ding, Ying
    SEVENTH INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED COMPUTING, APPLICATIONS AND TECHNOLOGIES, PROCEEDINGS, 2006, : 38 - +
  • [4] Concurrency analysis for Java']Java
    Ungureanu, C
    Jagannathan, S
    STATIC ANALYSIS, 2000, 1824 : 413 - 432
  • [5] Testing concurrent Java']Java components
    Strooper, Paul
    Wildman, Luke
    29TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: ICSE 2007 COMPANION VOLUME, PROCEEDINGS, 2007, : 161 - +
  • [6] Concurrency Analysis of Go and Java']Java
    Abhinav, P. Y.
    Bhat, Avakash
    Joseph, Christina Terese
    Chandrasekaran, K.
    PROCEEDINGS OF THE 2020 5TH INTERNATIONAL CONFERENCE ON COMPUTING, COMMUNICATION AND SECURITY (ICCCS-2020), 2020,
  • [7] Refactoring Sequential Java']Java Code for Concurrency via Concurrent Libraries
    Dig, Danny
    Marrero, John
    Ernst, Michael D.
    2009 31ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2009, : 397 - 407
  • [8] Concurrency in Go and Java']Java: Performance Analysis
    Togashi, Naohiro
    Klyuev, Vitaly
    2014 4TH IEEE INTERNATIONAL CONFERENCE ON INFORMATION SCIENCE AND TECHNOLOGY (ICIST), 2014, : 213 - 216
  • [9] Constraint-based concurrency in Java']Java
    Ramirez, R
    Martinez, J
    Santosa, AE
    DCABES 2004, Proceedings, Vols, 1 and 2, 2004, : 402 - 406
  • [10] Tool support for testing concurrent Java']Java components
    Long, B
    Hoffman, D
    Strooper, P
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2003, 29 (06) : 555 - 566