Abstract
A programming methodology is presented in which modular decomposition is based on recognition of useful abstractions. Two kinds of abstractions are used, procedural abstractions and data abstractions. Decomposition is carried out during a design phase that takes place before implementation begins. The design is documented by a graph showing the relationship among abstractions and by (informal) specifications of each abstraction.
The methodology is illustrated by means of a fairly large example. The design of a simplified text formatter. An implementation of the text formatter is included in the Appendix.
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.
This research was supported in part by the Advanced Research Projects Agency of the Department of Defense, monitored by the Office of Naval Research under contract N00014-75-C-0661, and in part by the National Science Foundation under grant MCS 74-21892 A01.
Preview
Unable to display preview. Download preview PDF.
References
E. W. Dijkstra. Notes on structured programming. Structured Programming, A.P.I.C. Studies in Data Processing No. 8, Academic Pres, New York 1972, 1–81.
N. Wirth. Program development by stepwise refinement. Comm. of the ACM 14, 4 (April 1971), 221–227.
D. L. Parnas. Information distribution aspects of design methodology. Information Processing 71, Vol. 1, North-Holland Pub. Co., Amsterdam 1972, 339–344.
D. L. Parnas. Response to Detected Errors in Well-Structured Programs. Dept of Computer Science. Carnegie Mellon University, Pittsburgh, Pa., July 1972.
C. A. R. Hoare. Proof of correctness of data representations. Acta Informatica 4 (1972), 271–281.
W. A. Wulf, R. London, and M. Shaw. An introduction to the construction and verification of Alphard programs. IEEE Trans. on Software Engineering, SE-2 (1976), 253–264.
V. Berzins. Abstract Model Specifications for Data Abstractions. Technical Report LCS/TR-221, Laboratory for Computer Science, M.I.T., Cambridge, Mass., July 1979.
G. J. Myers. Reliable Software Through Composite Design. Petrocelli/Charter, New York, N. Y., 1975.
E. Yourdon. Techniques of Program Structure and Design. Prentice-Hall, Inc., Englewood Cliffs, N. J., 1975.
B. Liskov, A. Snyder, R. Atkinson, and C. Schaffert. Abstraction mechanisms in CLU. Comm. of the ACM 20, 8 (August 1977), 564–576.
B. Liskov, E. Moss, C. Schaffert, R. Scheifler, and A. Snyder. CLU Reference Manual. Computation Structures Group Memo 161, Laboratory for Computer Science, M.I.T., Cambridge, Mass., July 1978.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1980 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Liskov, B. (1980). Modular program construction using abstractions. In: Bjøorner, D. (eds) Abstract Software Specifications. Lecture Notes in Computer Science, vol 86. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-10007-5_43
Download citation
DOI: https://doi.org/10.1007/3-540-10007-5_43
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-10007-2
Online ISBN: 978-3-540-38136-5
eBook Packages: Springer Book Archive