How can a reactive system be specified in Z without having to use additional formalisms such as CSP or temporal logic? The conventional wisdom is that it cannot. Notations like Z and VDM traditionally describe a system as an abstract data type. Hence they concentrate on the 'static' system behaviour: that is why they define operations using state before and state after. However, it seems clear that in order to specify a reactive system, 'dynamic behaviour' must be described otherwise concurrent or real-time properties cannot be specified. It is this aspect which is entirely missing from conventional Z and VDM specifications. During the late eighties, Duke et al [DHKR88, DS89] provided a partial solution to this problem. They showed how a conventional Z specification could be augmented with an additional specification describing its reactive behaviour. Their approach was to informally introduce a relation, OP, to represent all the possible before and after states of the operations of the system being specified. The behaviour of the system was then formalised as the history of state and operation executions resulting from the repeated application of O P (with concurrent operations arbitrarily ordered). Unfortunately, the specification approach they adopted was partially informal, and was oriented towards one specific example. The aim of this paper is to show that this promising approach can be greatly improved and extended upon to the point where it can provide a practical method for specifying reactive systems in Z. It also adds to work originally presented in [Eva96b]. The four extensions made are:
[1]
Leslie Lamport,et al.
The temporal logic of actions
,
1994,
TOPL.
[2]
Jonathan S. Ostroff,et al.
Temporal logic for real-time systems
,
1989
.
[3]
J. Michael Spivey,et al.
The Z notation - a reference manual
,
1992,
Prentice Hall International Series in Computer Science.
[4]
Ben Strulo.
How Firing Conditions Help Inheritance
,
1995,
ZUM.
[5]
Zohar Manna,et al.
Adequate Proof Principles for Invariance and Liveness Properties of Concurrent Programs
,
1984,
Sci. Comput. Program..
[6]
K. Mani Chandy.
Parallel program design
,
1989
.
[7]
Graeme Smith,et al.
Temporal Logic and Z Specifications
,
1989,
Aust. Comput. J..
[8]
Misra,et al.
An Assertional Veriication Method for Z Speciications of Concurrent Systems
,
1996
.
[9]
David A. Carrington,et al.
Structuring Z Specifications: Some Choices
,
1995,
ZUM.
[10]
Carl A. Sunshine,et al.
Protocol Specification, Testing and Verification - Guest Editorial
,
1982,
Comput. Networks.
[11]
Andrew Stephen Evans.
Z for concurrent systems
,
1996
.
[12]
K. Mani Chandy,et al.
Parallel program design - a foundation
,
1988
.