COMPOSITIONAL SPECIFICATION AND VERIFICATION OF DISTRIBUTED SYSTEMS

被引:33
|
作者
JONSSON, B
机构
[1] Uppsala University, Uppsala
关键词
ASSERTIONAL REASONING; COMPOSITIONALITY; MESSAGE PASSING; MODULAR SPECIFICATION; SPECIFICATION; STEPWISE REFINEMENT;
D O I
10.1145/174662.174665
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a method for specification and verification of distributed systems that communicate via asynchronous message passing. The method handles both safety and liveness properties. It is compositional, i.e., a specification of a composite system can be obtained from specifications of its components. Specifications are given as labeled transition systems with fairness properties, using a program-like notation with guarded multiple assignments. Compositionality is attained by partitioning the labels of a transition system into input events, which intuitively denote message receptions, and output events, which intuitively denote message transmissions. A specification denotes a set of allowed sequences of message transmissions and receptions, in analogy with the way finite automata are used as acceptors of finite strings. A lower-level specification implements a higher-level specification if all sequences allowed by the lower-level specification are also allowed by the higher-level one. We present a verification technique which reduces the problem of verifying the correctness of an implementation to classical verification conditions. Safety properties are verified by establishing a simulation relation between transition systems. Liveness properties are verified using methods for proving termination under fairness assumptions. Since specifications can be given at various levels of abstraction, the method is suitable in a development process where a detailed implementation is developed from an abstract specification through a sequence of refinement steps. As an application of the method, an algorithm by Thomas for updating a distributed database is specified and verified.
引用
收藏
页码:259 / 303
页数:45
相关论文
共 50 条