Abstract
This paper presents a method for the systematic reuse of formal specifications. The method is described in the framework of the algebraic specification language ASL which allows to build specifications in a modular way. A reusable component consists of a tree of algebraic specifications representing a software module at different levels of abstraction: the root of the tree is understood as the “abstract” requirement or the design specification of a problem, whereas the leaves correspond to different implementations of the root. We propose to construct such components by reusing already existing components based on the following “divide and conquer” principle: a given specification is decomposed into appropriate subspecifications; these are matched with existing components. Then the recomposition of the successful matchings yields automatically a component for the specification we started with.
This research has been partially sponsored by the ESPRIT project DRAGON and the Bavarian Center for Knowledge-Based Systems. A preliminary version of this method (applied to a more simple example) has been published in [Wirsing et al. 89].
Preview
Unable to display preview. Download preview PDF.
References
J.A. Bergstra, J. Heering, R. Klint: Module algebra. Centre voor Wiskunde en Informatica, Amsterdam, Report CS: R 8617, 1986.
R. Breu: A normal form for structured algebraic specifications. MIP-Bericht 8917, Universität Passau, 1989.
R.M. Burstall, J.A. Goguen: Putting theories together to make specifications. Proc. 5th Internat. Joint Conf. on Artificial Intelligence, Cambridge M.A., 1977, 1045–1058.
L. Cardelli, J. Donahue, L. Glassman, M. Jordan, B. Kalsow, G. Nelson: Modula-3 Report. Digital Systems Research Center, Technical Report 31, August 1988.
H. Ehrig, H. Weber: Programming in the large with algebraic module specifications. In: H. J. Kugler (ed.): Information Processing 86. Amsterdam: North_Holland, 675–684, 1986.
L.M.G. Feijs: The calculus λπ. In: M. Wirsing, J.A. Bergstra (eds.): Algebraic Methods: Theory, Tools and Applications. Springer Lecture Notes in Computer Science 394, 307–330, 1989.
K. Futatsugi, J.A. Goguen, J.P. Jouannaud, J. Meseguer: Principles of OBJ2. In: Proc. 12th ACM Symposium on Principles of Programming Languages, New Orleans, 1985, 52–66.
J.A. Goguen, R.M. Burstall: CAT, a system for the structured elaboration of correct programs from structured specifications. Computer Science Laboratory, SRI International, Technical Report CSL-118, 1980.
J.V. Guttag, J.J. Horning, J.M. Wing: Larch in five easy pieces. Digital Systems Research Center, Technical Report 5, 1985.
Y. Matsumoto: Some experiences in promoting reusable software. IEEE Trans. Soft. Eng., Vol. SE-10, no. 5, 1984, 502–513.
B. Meyer: Object-oriented software construction. International Series in Comp. Science (C.A.R. Hoare ed.), Prentice Hall, New York, 1988.
D.T. Sannella, A. Tarlecki: Towards formal development of programs from algebraic specifications: implementations revisited. Acta Informatica 25, 1988, 233–281.
D.T. Sannella, M. Wirsing: A kernel language for algebraic specification and implementation. In: M. Karpinski (ed.): Coll. on Foundations of Computation Theory 11, Sweden, 1983, Lecture Notes in Computer Science 158, Berlin: Springer, 1983, 413–427.
M. Wirsing: Structured algebraic specifications: a kernel language. Theoretical Computer Science 42, 1986, 123–249.
M. Wirsing: Algebraic description of reusable software components. In: Proc. COMPEURO 88, Computer Society Press of the IEEE, no. 834, 1988, 300–312.
M. Wirsing, R. Hennicker, R. Breu: Reusable specification components. In M. Chytil, L. Janiga, V. Koubek (eds.): Proc. Math. Foundations of Comp. Science, Carlsbad, August/September 1988, Lecture Notes in Computer Science 324, Berlin: Springer, 1988, 121–137.
M. Wirsing, R. Hennicker, R. Stabl: MENU — an example for the systematic reuse of specifications. In: C. Ghezzi, J. A. McDermid (eds.): Proc. ESEC '89, 2nd European Software Engineering Conference, Warwick, September 1989. Springer Lecture Notes in Computer Science 387, 1989, 20–41.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Hennicker, R., Wirsing, M. (1991). A formal method for the systematic reuse of specification components. In: Broy, M., Wirsing, M. (eds) Methods of Programming. Lecture Notes in Computer Science, vol 544. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0018269
Download citation
DOI: https://doi.org/10.1007/BFb0018269
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-54576-7
Online ISBN: 978-3-540-38491-5
eBook Packages: Springer Book Archive