Specification Styles in Distributed Systems Design and Verification

Substantial experience with the use of formal specification languages in the design of distributed systems has shown that finding appropriate structures for formal specifications presents a serious, and often underestimated problem. Its solutions are of great importance for ensuring the quality of the various designs that need to be developed at different levels of abstraction along the design trajectory of a system. This paper introduces four specification styles that allow us to structure formal specifications in different ways: the monolithic, the constraint-oriented, the state-oriented, and the resource-oriented style. These styles have been selected on the basis of their suitability to express design concerns by structuring specifications and their suitability to pursue qualitative design principles such as generality, orthogonality, and open-endedness. By giving a running example, a query-answer service, in the ISO specification language LOTOS, these styles are discussed in detail. The support of verification and correctness preserving transformation by these styles is shown by verifying designs, expressed in different styles, with respect to each other. This verification is based on equational laws for (weak) bisimulation equivalence.

[1]  J. Huisman The Netherlands , 1996, The Lancet.

[2]  BolognesiTommaso,et al.  Introduction to the ISO specification language LOTOS , 1987 .

[3]  Giuseppe Scollo,et al.  On the Use of LOTOS for the Formal Description of a Transport Protocol , 1988, FORTE.

[4]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1 , 1985, EATCS Monographs on Theoretical Computer Science.

[5]  Samson Abramsky,et al.  Observation Equivalence as a Testing Equivalence , 1987, Theor. Comput. Sci..

[6]  Giuseppe Scollo,et al.  Formal Specification in OSI , 1986, Networking in Open Systems.

[7]  Usman Haque Architecture , interaction , systems , .

[8]  Tommaso Bolognesi,et al.  Tableau methods to describe strong bisimilarity on LOTOS processes involving pure interleaving and enabling , 1994, FORTE.

[9]  Marten van Sinderen,et al.  The Application of LOTOS for the Formal Description of the ISO Session Layer , 1988, FORTE.

[10]  C. A. R. Hoare,et al.  Communicating Sequential Processes (Reprint) , 1983, Commun. ACM.

[11]  Horst Reichel,et al.  Initial Computability, Algebraic Specifications, and Partial Algebras , 1987 .

[12]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[13]  Giuseppe Scollo,et al.  Lotos in Practice , 1986, IFIP Congress.

[14]  Marten van Sinderen,et al.  Architecture and Specification Style in Formal Descriptions of Distributed Systems , 1988 .

[15]  Rocco De Nicola,et al.  Testing Equivalences for Processes , 1984, Theor. Comput. Sci..

[16]  George J. Milne,et al.  CIRCAL and the representation of communication, concurrency, and time , 1985, TOPL.

[17]  P. M. Melliar-Smith,et al.  From State Machines to Temporal Logic: Specification Methods for Protocol Standards , 1983, The Analysis of Concurrent Systems.

[18]  Vincenzo Manca,et al.  Equational Type Logic , 1990, Theor. Comput. Sci..

[19]  Iso. Lotos,et al.  A Formal Description Technique Based on the Temporal Ordering of Observational Behaviour , 1985 .

[20]  David Park,et al.  Concurrency and Automata on Infinite Sequences , 1981, Theoretical Computer Science.

[21]  Marten van Sinderen,et al.  On the architectural design of the formal specification of the session standards in LOTOS , 1987 .

[22]  C. A. R. Hoare,et al.  A Theory of Communicating Sequential Processes , 1984, JACM.

[23]  Marten J. van Sinderen A verification exercise relating to specification styles in LOTOS , 1989 .

[24]  Robin Milner,et al.  Calculi for Synchrony and Asynchrony , 1983, Theor. Comput. Sci..