Specification and Verification of Communication Protocols in AFFIRM Using State Transition Models

It is becoming increasingly important that communication protocols be formally specified and verified. This paper describes a particular approach–the state transition model–using a collection of mechanically supported specification and verification tools incorporated in a running system called AFFIRM. Although developed for the specification of abstract data types and the verification of their properties, the formalism embodied in AFFIRM can also express the concepts underlying state transition machines. Such models easily express most of the events occurring in protocol systems, including those of the users, their agent processes, and the communication channels. The paper reviews the basic concepts of state transition models and the AFFIRM formalism and methodology and describes their union. A detailed example, the alternating bit protocol, illustrates varous properties of interest for specification and verification. Other examples explored using this formalism are briefly described and the accumulated experience is discussed.

[1]  David R. Musser,et al.  Abstract Data Type Specification in the Affirm System , 1980, IEEE Transactions on Software Engineering.

[2]  Daniel Brand,et al.  Verification of Protocols Using Symbolic Execution , 1978, Comput. Networks.

[3]  Keith A. Bartlett,et al.  A note on reliable full-duplex transmission over half-duplex links , 1969, Commun. ACM.

[4]  H. Zimmermann,et al.  OSI Reference Model - The ISO Model of Architecture for Open Systems Interconnection , 1980, IEEE Transactions on Communications.

[5]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[6]  Lawrence Robinson,et al.  SPECIAL - A Specification and Assertion Language. , 1976 .

[7]  Mary Shaw,et al.  An introduction to the construction and verification of Alphard programs , 1976, ICSE '76.

[8]  Carl A. Sunshine,et al.  Formal Techniques for Protocol Specification and Verification , 1979, Computer.

[9]  Carl Allan Sunshine,et al.  Interprocess communication protocols for computer networks , 1975 .

[10]  Leslie Lamport,et al.  Proving Liveness Properties of Concurrent Programs , 1982, TOPL.

[11]  Daniel Schwabe Formal specification and verification of a connection establishment protocol , 1981, SIGCOMM 1981.

[12]  L. Flon A Unified Approach to the Specification and Verification of Abstract DataTypes , 1978 .

[13]  Joseph A. Goguen,et al.  Abstract Errors for Abstract Data Types , 1977, Formal Description of Programming Concepts.

[14]  P. M. Melliar-Smith,et al.  Temporal Logic Specification of Distributed Systems , 1981, ICDCS.

[15]  John V. Guttag,et al.  Notes on Type Abstraction (Version 2) , 1980, IEEE Transactions on Software Engineering.

[16]  Jacques Loeckx,et al.  Algorithmic Specifications of Abstract Data Types , 1981, ICALP.

[17]  Ellis Horowitz,et al.  Abstract data types and software validation , 1978, CACM.

[18]  Donald I. Good,et al.  Principles of proving concurrent programs in Gypsy , 1979, POPL '79.

[19]  William R. Crowther,et al.  The Data Transfer Protocol , 1971, RFC.

[20]  David R. Musser,et al.  An Overview of AFFIRM: A Specification and Verification System , 1980, IFIP Congress.

[21]  Brent Hailpern,et al.  Verifying network protocols using temporal logic , 1980 .

[22]  Gregor von Bochmann,et al.  A Unified Method for the Specification and Verification of Protocols , 1977, IFIP Congress.

[23]  Lawrence Robinson,et al.  Proof techniques for hierarchically structured programs , 1977, CACM.

[24]  R. N. Principato A FORMALIZATION OF THE STATE MACHINE SPECIFICATION TECHNIQUE , 1978 .

[25]  John V. Guttag,et al.  Notes on Type Abstraction , 1978, Program Construction.

[26]  David Lorge Parnas,et al.  Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .

[27]  Stein Krogdahl Verification of a class of link-level protocols , 1978 .

[28]  V. A. Berzins,et al.  Abstract model specifications for data abstractions , 1979 .

[29]  Daniel Schwabe Formal techniques for the specification and verification of protocols , 1981 .

[30]  Brent Hailpern Verifying Concurrent Processes Using Temporal Logic , 1982, Lecture Notes in Computer Science.

[31]  Bernard Berthomieu,et al.  Algebraic Specification of Communication Protocols , 1981 .

[32]  B. H. Liskov,et al.  Specification techniques for data abstractions , 1975, IEEE Transactions on Software Engineering.

[33]  John V. Guttag,et al.  The specification and application to programming of abstract data types. , 1975 .

[34]  Ellis Horowitz,et al.  The design of data type specifications , 1976, ICSE '76.