Specifying recoverable objects

This paper descr ibes the results of an exercise in wri t ing formal specifications. T h e specifications capture the system-cri t ical recoverability proper ty of data objects that are accessed by fault-tolerant distributed programs . Recoverabi l i ty is a " n o n f u n c t i o n a l " property requir ing that an objec t ' s state survives hardware failures. This exercise supports the c la im that applying a rigorous specification method can greatly enhance one ' s unders tanding of sof tware 's complex behavior . T h e specifications enabled us to articulate precisely quest ions about an unstated assumpt ion in the under lying operat ing system, incompleteness in the implementa t ion of recoverable objects , implementa t ion bias in the language design, and even incompleteness in the specifications themselves . Copyr ight © 1988 Jeannette M. Wing T o appear in the Proceedings of the Sixth Annual Pacific Northwest Software Quali ty Conference, Port land, OR, September 19-20, 1988. This research was sponsored in part by the Defense Advanced Research Projects Agency (DOD) , A R P A Order No . 4 8 6 4 (Amendmen t 20), under contract F33615-87-C-1499 moni tored by the Avionics Laboratory, Air Force Wright Aeronaut ical Laborator ies , Wright-Pat terson A F B and in part by the National Science Foundat ion under grant C C R 8 6 2 0 0 2 7 . The views and conclus ions contained in this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of the Defense Advanced Research Projects Agency or the U S Government .

[1]  Butler W. Lampson,et al.  Atomic Transactions , 1980, Advanced Course: Distributed Systems.

[2]  James J. Horning,et al.  The Larch Family of Specification Languages , 1985, IEEE Software.

[3]  Alfred Z. Spector,et al.  Distributed logging for transaction processing , 1987, SIGMOD '87.

[4]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[5]  Alfred Z. Spector,et al.  The Camelot project , 1986 .

[6]  Butler W. Lampson,et al.  Distributed Systems — Architecture and Implementation , 1982, Lecture Notes in Computer Science.