Abstract
This paper addresses the problem of how to construct refinements of specifications formally and incrementally. The key idea is to use a taxonomy of abstract design concepts, each represented by a design theory An abstract design concept is applied by constructing a specification morphism from its design theory to a requirement specification. Procedures for propagating constraints, computing colimits, and constructing specification morphisms provide computational support for this approach. Although we conjecture that classification generally applies to the incremental application of knowledge represented in a taxonomy of design theories, this paper mainly focuses on algorithm design theories and presents several examples of design by classification.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Astesiano, E., and Wirsing, M. An introduction to ASL. In Program Specification and Transformation, L. Meertens, Ed. North-Holland, Amsterdam, 1987, pp. 343–365.
Blaine, L., and Goldberg, A. DTRE — a semi-automatic transformation system. In Constructing Programs from Specifications, B. Möller, Ed. North-Holland, Amsterdam, 1991, pp. 165–204.
Broy, M., Wirsing, M., and Pepper, P. On the algebraic definition of programming languages. ACM Transactions on Programming Languages and Systems 9, 1 (January 1987), 54–99.
Ehrig, H., Kreowski, H. J., Thatcher, J., Wagner, E., and Wright, J. Parameter passing in algebraic specification languages. In Proceedings, Workshop on Program Specification (Aarhus, Denmark, Aug. 1981), vol. 134, pp. 322–369.
Ehrig, H., and Mahr, B.Fundamentals of Algebraic Specification, vol. 2: Module Specifications and Constraints. Springer-Verlag, Berlin, 1990.
Enderton, H. B.A Mathematical Introduction to Logic. Academic Press, New York, 1972.
Goguen, J. A., Thatcher, J. W., and Wagner, E. G. An initial algebra approach to the specification, correctness and implementation of abstract data types. In Current Trends in Programming Methodology, Vol. 4: Data Structuring, R. Yeh, Ed. Prentice-Hall, Englewood Cliffs, NJ, 1978.
Goguen, J. A., Thatcher, J. W., Wagner, E. G., and Wright, J. B. Initial algebra semantics and continuous algebras. Journal of the ACM 24, 1 (January 1977), 68–95.
Goguen, J. A., and Winkler, T. Introducing OBJ3. Tech. Rep. SRI-CSL-88-09, SRI International, Menlo Park, California, 1988.
Guttag, J. V., and Horning, J. J. The algebraic specification of abstract data types. Acta Inf. 10 (1978), 27–52.
Hoare, C. Varieties of programming languages. Tech. rep., Programming Research Group, University of Oxford, Oxford, UK, 1989.
Lowry, M. R. Algorithm synthesis through problem reformulation. In Proceedings of the 1987 National Conference on Artificial Intelligence (Seattle, WA, July 13–17, 1987).
Papadimitriou, C. H., and Steiglitz, K.Combinatorial Optimisation: Algorithms and Complexity. Prentice Hall, Englewood Cliffs, NJ, 1982.
Partsch, H.Specification and Transformation of Programs: A Formal Approach to Software Development. Springer-Verlag, New York, 1990.
Sannella, D., and Tarlecki, A. Toward formal development of programs from algebraic specifications: Implementations revisited. Acta Informatica 25, 3 (1988), 233–281.
Smith, D. R. Top-down synthesis of divide-and-conquer algorithms. Artificial Intelligence 27, 1 (September 1985), 43–96. (Reprinted in Readings in Artificial Intelligence and Software Engineering, C. Rich and R. Waters, Eds., Los Altos, CA, Morgan Kaufmann, 1986.).
Smith, D. R., and Lowry, M. R. Algorithm theories and design tactics. In Proceedings of the International Conference on Mathematics of Program Construction, LNCS 375, L. van de Snepscheut, Ed. Springer-Verlag, Berlin, 1989, pp. 379–398. (reprinted in Science of Computer Programming, 14(2–3), October 1990, pp. 305–321).
Smith, D. R. KIDS — a semi-automatic program development system. IEEE Transactions on Software Engineering Special Issue on Formal Methods in Software Engineering 16, 9 (September 1990), 1024–1043.
Smith, D. R. Structure and design of problem reduction generators. In Constructing Programs from Specifications, B. Möller, Ed. North-Holland, Amsterdam, 1991, pp. 91–124.
Smith, D. R. Constructing specification morphisms. Journal of Symbolic Computation, Special Issue on Automatic Programming 15, 5–6 (May–June 1993), 571–606.
Smith, D. R. Derivation of parallel sorting algorithms. In Parallel Algorithm Derivation and Program Transformation, R. Paige, J. Reif, and R. Wachter, Eds. Kluwer Academic Publishers, New York, 1993, pp. 55–69.
Srinivas, Y. V. Algebraic specification for domains. In Domain Analysis: Acquisition of Reusable Information for Software Construction, R. Prieto-Diaz and G. Arango, Eds. IEEE Computer Society Press, Los Alamitos, CA, 1991, pp. 90–124.
Srinivas, Y. V., and Jüllig, R. Specware:tm formal support for composing software. In Proceedings of the Conference on Mathematics of Program Construction, B. Moeller, Ed. Springer-Verlag, Berlin, 1995. Lecture Notes in Computer Science, Vol. 947.
Turski, W. M., and Maibaum, T. E.The Specification of Computer Programs. Addison-Wesley, Wokingham, England, 1987.
Veloso, P. A. Problem solving by interpretation of theories. In Contemporary Mathematics, vol. 69. American Mathematical Society, Providence, Rhode Island, 1988, pp. 241–250.
Wirsing, M. Algebraic specification. In Formal Models and Semantics
J. van Leeuwen, Ed., vol. B of Handbook of Theoretical Computer Science. MIT Press/Elsevier, 1990, pp. 675–788.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Smith, D.R. (1996). Toward a classification approach to design. In: Wirsing, M., Nivat, M. (eds) Algebraic Methodology and Software Technology. AMAST 1996. Lecture Notes in Computer Science, vol 1101. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014308
Download citation
DOI: https://doi.org/10.1007/BFb0014308
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61463-0
Online ISBN: 978-3-540-68595-1
eBook Packages: Springer Book Archive