Abstract
A specification for a software module is a statement of the requirements that the final programs must meet. In this paper we concentrate on that portion of the specification that describes the interface between the module being specified and other programs (or persons) that will interact with that module. Because of the complexity of software products, it is advantageous to be able to evaluate the design of this interface without reference to any possible implementations. The first sections of this paper present an approach to the writing of black box specifications, that takes advantage of Guttag's work on abstract specification [9]. Then we illustrate it on a number of small examples, and discuss checking the completeness of a specification. Finally we describe a case history of a module design. Although the module is a simple one, the early specifications (written using an earlier notation) contained design flaws that were not detected in spite of the involvement of several persons in a series of discussions about the module. These errors are easily recognized using the method introduced in this paper.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Parnas, D.L. "Information Distribution Aspects of Design Methodology." Proc. IFIP Congress, 1971
Parnas, D.L. "On the Criteria to be Used in Decomposing Systems into Modules." Communications of the ACM (Programming Techniques Department), December 1972.
Parnas, D.L., Shore, J.E., and D. Weiss. "Abstract Types Defined as Classes of Variables." Proc. Conference on Data: Abstraction, Definition, and Structure, pp. 22–24, Salt Lake City, Utah, March 1976.
Floyd, R.W. "Assigning Meanings to Programs." In "Mathematical Aspects of Computer Science" (J.T. Schwartz, ed.). Proc. Symp. of Applied Mathematics, Vol. 19, American Math. Society, Providence, 1967, 19–32.
Hoare, C.A.R. "An Axiomatic Basis for Computer Programming." Comm. ACM 12, 10. October 1969, 576–583.
Dijkstra, E.W. "Guarded Commands, Nondeterminancy, and the Formal Derivation of Programs." CACM 18, 8, August 1975.
Dijkstra, E.W. A Discipline of Programming. Prentice Hall, 1976.
Parnas, D.L. "A Technique for Software Module Specification with Examples." Comm. ACM, May 1972.
Guttag, J. "The Specification and Application to Programming of Abstract Data Types." Ph. D. Thesis, CSRG TR 59, University of Toronto, September 1975.
Guttag, J. "Abstract Data Types and the Development of Data Structures." SIGPLAN/SIGMOD Conference on DATA: Abstraction, Definition and Structure (to be published in CACM).
Parnas, D.L. and W.R. Price. "The Design of the Virtual Memory Aspects of a Virtual Machine" Proceedings of the ACM SIGARCH-SIGOPS Workshop on Virtual Computer Systems, March 1973.
Parnas, D.L. and W.R. Price. "Using Memory Access Control as the Only Protection Mechanism." Proc. of International Workshop on Protection in Operating System, 13–14 August, IRIA.
Roubine, O. and L. Robinson. "Special Reference Manual" (Second Edition), Technical Report CSG-45, Stanford Research Institute, Menlo Park, Calif.
Liskov, B. and V. Berzins. "An Appraisal of Program Specifications." Research Direction in Software Technology (P. Wegner, ed.). To be published by MIT Press.
J. Guttag. Private communication, 1976.
Parnas, D.L. and H. Wuerges. "Response to Undesired Events in Software Systems." Proc. of the 2nd International Conference on Software Engineering, 13–15 October 1976, San Francisco, California.
Parnas, D.L., Handzel, G. and H. Wuerges. "Design and Specification of the Minimal Subset of an Operating System Family." Presented at 2nd International Conference on Software Engineering, 13–15 October 1976; published in special issue of IEEE Transactions on Software Engineering, December 1976.
Neumann, P.G., et.al. A Provably Secure Operating System: The System, Its Applications, and Proofs. Final Report, Stanford Research Institute, 11 February 1977, Menlo Park, California
Parnas, D.L. "The Use of Precise Specifications in the Development of Software." Proc. IFIP Congress 1977, North Holland Publishing Company.
Parnas, D.L. and G. Handzel. "More on Specification Techniques for Software Modules." Technical Report, Technische Hochschule Darmstadt, Darmstadt, West Germany, February 1975.
Price, W.R. "Implications of a Virtual Memory Mechanism for Implementing Protection in a Family of Operating Systems." Technical Report (Ph. D. Thesis), Carnegie-Mellon University, June 1973, AD766292.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1978 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bartussek, W., Parnas, D.L. (1978). Using assertions about traces to write abstract specifications for software modules. In: Bracchi, G., Lockemann, P.C. (eds) Information Systems Methodology. ECI 1978. Lecture Notes in Computer Science, vol 65. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-08934-9_80
Download citation
DOI: https://doi.org/10.1007/3-540-08934-9_80
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-08934-6
Online ISBN: 978-3-540-35731-5
eBook Packages: Springer Book Archive