A behavioural algebraic framework for modular system design with reuse
A formal framework for the design of modular software systems is presented which incorporates the idea of reusing software components in new applications. The approach is based on structured algebraic specifications with behavioural semantics. In order to provide a clean interconnection mechanism for specifications, behavioural specifications with import interfaces are considered and their composition with respect to the behavioural requirements of the import interface is defined. A simple implementation notion for behavioural specifications with import interface is presented which is compatible with the composition of specifications. Hence it is guaranteed that separately developed implementations of parts of an abstract system specification can be automatically composed to a globally correct system implementation. Based on these concepts, reusable components are defined as (unordered) trees of behavioural specifications with import interfaces such that two consecutive nodes are related by the implementation relation. A formal method for the systematic reuse of components in new applications is proposed. The method consists of four steps which describe how to construct for a given abstract system specification a modular implementation by reusing existing implementations available as leaves of appropriate reusable components. The method is demonstrated by a detailed example.
Unable to display preview. Download preview PDF.
- [Bemot, Bidoit 91]G. Bernot, M. Bidoit: Proving the correctness of algebraically specified software: modularity and observability issues. Proc. AMAST '91, 2nd International Conference on Algebraic Methodology of Software Technology, Technical Report of the University of Iowa, 1991.Google Scholar
- [Cramer et al. 91]J. Cramer, W. Fey, M. Goedicke, M. Große-Rhode: Towards a formally based component description language — a foundation for reuse. Structured Programming, Vol. 2, No. 12, Springer Verlag, 1991.Google Scholar
- [Ehrig, Mahr 85]H. Ehrig, B. Mahr: Fundamentals of algebraic specification 1. EATCS Monographs on Theor. Comp. Science, Vol. 6, Springer Verlag, 1985.Google Scholar
- [Ehrig, Mahr 90]H. Ehrig, B. Mahr: Fundamentals of algebraic specification 2. EATCS Monographs on Theor. Comp. Science, Vol. 21, Springer Verlag, 1990.Google Scholar
- [Gaudel, Moineau 88]M. C. Gaudel, Th. Moineau: A theory of software reusability. In: H. Ganzinger (ed.): Proc. ESOP '88. Lecture Notes in Computer Science 300, 115–130, 1988.Google Scholar
- [Hennicker, Nickl 92]R. Hennicker, F. Nickl: A behavioural algebraic framework for modular system design with reuse. Technical report 9206, Institut für Informatik, Ludwig-Maximilians-Universität München.Google Scholar
- [Milner et al. 90]R. Milner, M. Tofte, R. Harper. The definition of Standard ML. MIT Press, 1990.Google Scholar
- [Orejas, Nivela 90]F. Orejas, M. P. Nivela: Constraints for behavioural specifications. In: H. Ehrig, K. P. Jantke, F. Orejas, H. Reichel (eds): Recent Trends in Data Type Specification, Proc. 7th Workshop on Specification of Abstract Data Types, Wusterhausen/Dosse, April 1990. Lecture Notes in Computer Science 534, 220–245, 1990.Google Scholar
- [Reichel 85]H. Reichel: Initial restrictions of behaviour. IFIP Working Conference, The Role of Abstract Models in Information Processing, 1985.Google Scholar
- [Sannella et al. 90]D.T. Sannella, S. Sokolowski, A.Tarlecki: Toward formal development of programs from algebraic specifications: parameterization revisited. Forschungsberichte des Studienganges 6/90, Univ. Bremen, 1990.Google Scholar
- [Wirsing 86]M. Wirsing: Structured algebraic specifications: a kernel language. Theor.Comp.Science 42, 123–249, 1986.Google Scholar
- [Wirsing 88]M. Wirsing: Algebraic description of reusable software components. In: E. Milgrom, P. Wodon (eds.): Proc. COMPEURO '88. IEEE Computer Society, 834, Computer Society Press, 300–312, 1988.Google Scholar
- [Wirsing et al. 89]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 387, 20–41, 1989.Google Scholar