Skip to main content

Writing Simulatable Specifications in Special

  • Conference paper
The Use of Formal Specification of Software

Part of the book series: Informatik-Fachberichte ((INFORMATIK,volume 36))

  • 36 Accesses

Abstract

It is commonly accepted that most software systems contain large numbers of errors that are not detected until delivery and testing by the customer. Some studies have determined that errors are most likely to be introduced in the design phase; perhaps up to two-thirds of all system errors are design errors. Formal specifications can be a useful vehicle for exposing design errors by forcing attention early in the system development process on “what the system should do.” Although specifications are an improvement over, say, natural language for describing systems, even if carefully read they cannot be expected to eliminate all design errors. Fortunately, because specifications are supposed to be complete, it is in principle possible to execute them with test data exactly as one would execute code. We call such an execution of specifications module simulation, where the module is assumed to be the unit that is specified.

Our concern in this paper is with simulating specifications written in SPECIAL (SPECfication and Assertion Language). Many of the constructs in SPECIAL cannot be simulated, except very inefficiently with a theorem prover. However, there is a subset of SPECIAL that can still be used to produce attractive specifications, and that can be easily simulated. With several examples, we exhibit the trade-off between the elegance of a specification and its amenability to simulation.

The research reported in this paper was sponsored by the Rome Air Development Center and the Naval Ocean System Center under Contract N00123-76-C-0195.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R.S. Boyer and J S. Moore. A Computational Logic. Academic Press, 1979.

    MATH  Google Scholar 

  2. B. Elspas et al. A Verification System for Jocit/J3 Programs (Rugged Programming Environment—RPE2). Technical Report, SRI International, Menlo Park, CA, April, 1977. Final Report for Contract No. F30602–76-C-0204, SRI Project 5042.

    Google Scholar 

  3. R. J. Feiertag, K. N. Levitt, L. Robinson. Proving Multilevel Security of a System Design. Operating Systems Review 11(5):57–66, November, 1977. Proc. Sixth Symposium on Operating System Principles, Purdue University, West Lafayette, Indiana.

    Article  Google Scholar 

  4. Joseph A. Goguen and Joseph J. Tardo. An Introduction to OBJ: A Language for Writing and Testing Algebraic Program Specifications. In Proceedings of Specifications of Reliable Software, pages 170–189. Proceedings of Specifications of Reliable Software, April, 1979.

    Google Scholar 

  5. J.V. Guttag, et al. Abstract Data Types and Software Validation. Communications of the ACM 21(12): 1048–1063, December, 1978.

    Article  MathSciNet  MATH  Google Scholar 

  6. Z. Manna and R.J. Waldinger. Knowledge and Reasoning in Program Synthesis.

    Google Scholar 

  7. Artificial Intelligence 6(2): 175–208, 1975.

    Google Scholar 

  8. John McCarthy, et al. Lisp 1.5 Programmer’s Manual. The MIT Press, 1973.

    Google Scholar 

  9. J Strother Moore. The Interlisp Virtual Machine Specification. Technical Report CSL 76–5, Xerox Palo Alto Research Center, September, 1976.

    Google Scholar 

  10. D.L. Parnas. A Technique for Software Module Specification, with Examples.

    Google Scholar 

  11. Comm. ACM 15(5):330–336, May, 1972.

    Google Scholar 

  12. L. Robinson. The HDM Handbook Volume I: The Foundations of HDM. Technical Report, SRI International, Menlo Park, CA 94025, 1979.

    Google Scholar 

  13. O. M. Roubine and L. Robinson. The SPECIAL Reference Manual. Technical Report CSL-45, SRI International, Menlo Park, CA, 1977. SRI Project 4828, Contract N00123–76-C-1095.

    Google Scholar 

  14. B. Silverberg, L. Robinson and K.N. Levitt. The HDM Handbook: Volume II: Languages and Tools of HDM. Technical Report, SRI International, Menlo Park, CA 94025, 1979.

    Google Scholar 

  15. J.H. Wensley, L. Lamport, J. Goldberg, M.W. Green, K.N. Levitt, P.M. Melliar-Smith, R.E. Shostak, and C.B. Weinstock. SIFT: Design and Analysis of a Fault-Tolerant Computer for Aircraft Control. Proceedings IEEE 66(10): 1240–1254, October, 1978.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1980 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Levitt, K.N., Robinson, L., Silverberg, B.A. (1980). Writing Simulatable Specifications in Special. In: Berg, H.K., Giloi, W.K. (eds) The Use of Formal Specification of Software. Informatik-Fachberichte, vol 36. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-67881-3_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-67881-3_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-10442-1

  • Online ISBN: 978-3-642-67881-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics