Modelling Java concurrency with Object-Z

In this paper, we present a formal model of Java concurrency using the Object-Z specification language. This model captures the Java thread synchronization concepts of locking, blocking, waiting and notification. In the model, we take a viewpoints approach, first capturing the role of the objects and threads, and then taking a system view where we capture the way the objects and threads cooperate and communicate. As a simple illustration of how the model can, in general be applied, we use Object-Z inheritance to integrate the model with the classical producer-consumer system to create a specification directly incorporating the Java concurrency constructs.

[1]  Jeff Magee,et al.  Concurrency - state models and Java programs , 2006 .

[2]  Paul A. Strooper,et al.  A classification of concurrency failures in Java components , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[3]  Daniel Hoffman,et al.  Tool Support for Testing Concurrent Java Components , 2003, IEEE Trans. Software Eng..

[4]  Graeme Smith,et al.  The Object-Z Specification Language , 1999, Advances in Formal Methods.

[5]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[6]  Peter H. Welch,et al.  A CSP model for Java multithreading , 2000, 2000 Proceedings International Symposium on Software Engineering for Parallel and Distributed Systems.

[7]  Paul Strooper SPECIFICATION-BASED TESTING OF CONCURRENT PROGRAMS , 2002 .

[8]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[9]  Roger Duke,et al.  Formal Object Oriented Specification Using Object-Z , 2000 .

[10]  Ian J. Hayes,et al.  Specification case studies , 1987 .

[11]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[12]  Per Brinch Hansen,et al.  Reproducible testing of monitors , 1978, Softw. Pract. Exp..

[13]  Lori A. Clarke,et al.  A Compact Petri Net Representation for Concurrent Programs , 1995, 1995 17th International Conference on Software Engineering.

[14]  Benjamin W. Long,et al.  Formal specification of Java concurrency to assist software verification , 2003, Proceedings International Parallel and Distributed Processing Symposium.