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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
R.S. Boyer and J S. Moore. A Computational Logic. Academic Press, 1979.
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.
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.
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.
J.V. Guttag, et al. Abstract Data Types and Software Validation. Communications of the ACM 21(12): 1048–1063, December, 1978.
Z. Manna and R.J. Waldinger. Knowledge and Reasoning in Program Synthesis.
Artificial Intelligence 6(2): 175–208, 1975.
John McCarthy, et al. Lisp 1.5 Programmer’s Manual. The MIT Press, 1973.
J Strother Moore. The Interlisp Virtual Machine Specification. Technical Report CSL 76–5, Xerox Palo Alto Research Center, September, 1976.
D.L. Parnas. A Technique for Software Module Specification, with Examples.
Comm. ACM 15(5):330–336, May, 1972.
L. Robinson. The HDM Handbook Volume I: The Foundations of HDM. Technical Report, SRI International, Menlo Park, CA 94025, 1979.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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