Algebraic Specification of Modules and Their Basic Interconnections

Abstract An algebraic specification concept for modules in software engineering is introduced which includes, in addition to a parameter and body part, explicit import and export interfaces. This concept integrates the main ideas of parameterized specifications for abstract data types and the information-hiding concept required for modules in software engineering. The concept is carefully motivated and defined with formal syntax and semantics within the framework of algebraic specifications. The basic constructions for combining modules are composition, actualization, extension, and union of modules with shared submodules. In this paper, composition and union are studied in detail. Both constructions are shown to be compositional. This means that the semantics of a combined module can be expressed in terms of the semantics of the components. To show the practical significance, specifications for the modules of an airport-schedule system and corresponding Ada packages are presented as an example.

[1]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[2]  Hartmut Ehrig,et al.  Algebraic Implementation of Abstract Data Types , 1982, Theor. Comput. Sci..

[3]  Hartmut Ehrig,et al.  Parameter Passing in Algebraic Specification Languages , 1984, Theor. Comput. Sci..

[4]  Edward K. Blum,et al.  Implementation of Data Types by Algebraic Methods , 1983, J. Comput. Syst. Sci..

[5]  Hartmut Ehrig,et al.  Distributive laws for composition and union of module specifications for software systems , 1987 .

[6]  Joseph A. Goguen,et al.  Introducing Institutions , 1983, Logic of Programs.

[7]  Hartmut Ehrig,et al.  Compatibility of Parameter Passing and Implementation of Parameterized Data Types , 1983, Theor. Comput. Sci..

[8]  José Meseguer,et al.  Universal Realization, Persistent Interconnection and Implementation of Abstract Modules , 1982, ICALP.

[9]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1: Equations and Initial Semantics , 1985 .

[10]  Michael D. Rychener Control requirements for the design of production system architectures , 1977 .

[11]  Niklaus Wirth,et al.  Programming in Modula-2 , 1985, Texts and Monographs in Computer Science.

[12]  Ugo Montanari,et al.  Observability Concepts in Abstract Data Type Specifications , 1976, MFCS.

[13]  Francesco Parisi-Presicce Inner and Mutual Compatibility of Basic Operations on Module Specifications , 1986, CAAP.

[14]  Juris Hartmanis,et al.  The Programming Language Ada , 1983, Lecture Notes in Computer Science.

[15]  Francesco Parisi-Presicce Union and Actualization of Module Specifications: Some Compatibility Results , 1987, J. Comput. Syst. Sci..

[16]  Hartmut Ehrig,et al.  Algebraic Theory of Module Specification with Constraints , 1996, MFCS.

[17]  Hartmut Ehrig,et al.  Specification of modular systems , 1986, IEEE Transactions on Software Engineering.

[18]  Hartmut Ehrig,et al.  ACT ONE - An Algebraic Specification Language with two Levels of Semantics , 1983, ADT.