Introduction to Algebraic Specification. Part 2: From Classical View to Foundations of System Specifications

Part 1 of this paper concerning algebraic specifications is an informal introduction to formal methods for software development using algebraic techniques. The intention of this second part of the paper is to survey the research field of algebraic specifications developed within the last two decades and the role of this field concerning formal methods in computer science. The aim of this paper is to show that the classical field of algebraic specifications, using equational axioms, equational logic and algebraic data types and varieties, has reached a consolidated status by now. It can be considered as an important kernel of a more general theory which is presently under development, focusing on the foundations of system specifications in general. Algebraic specification is a formal specification approach that emerged in the mid 1970s in order to provide an abstract and implementation-independent definition of data types. This original idea of using algebraic specifi- cations as a formal specification technique for abstract data types was quite successful. It was extended within the last decade to horizontal and vertical structuring of specifications as required from the software engineering point of view. Today algebraic specification is a well- known formal method for software development. In part 1 of this paper we have given an introduction to algebraic specification from the software engineering point of view which shows how algebraic specification techniques can support the general software development process. 14 In this second part of the introduction to algebraic specification we concentrate more on the mathematical theory, which has been developed from a subfield of universal algebra to a categorical theory for the founda- tions of system specifications. Algebraic specification originally concentrated on the use of equational logic as the basic formalism for research. This use has been one of the causes of its success, since the good behaviour of equational logic with respect to a number of semantic constructs has helped in the study of new specification concepts and constructs. Moreover, the abstract categorical techniques used to obtain these results allow a generic study of specification constructs independent of any specific formalism. In this sense, research in algebraic specifi- cation departed from equational logic a number of years ago and has concentrated, on the one hand, in extending the concepts and results for more expressive formalisms. On the other hand, the generic study of specification constructs provides the new aim of allowing the possibility of integrating several 'logics' into a single specification framework, in such a way that different aspects of a given system could be specified using the most appropriate formalism. Therefore, one may argue now that the area has broadened so much, with respect to techniques, aims and views, that it is no longer appropriate to call it algebraic specification. As a consequence, to describe all the work going on in this area we advocate using the name 'Foundations of System Specification', where algebraic specifications can be considered to be an important special case. The rest of the paper is organised as follows. In the following section we present the basic specification concepts using the equational formalism, i.e. the classical view of algebraic specifications. In Sections 3 and 4 we present the main constructions for building specifications and for implementations of specifications. Current work in the foundations of system specification is briefly described in Section 5. Finally a conclusion and references are given in Sections 6 and 7.

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

[2]  Hartmut Ehrig,et al.  On Recent Trends in Algebraic Specification , 1989, ICALP.

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

[4]  Donald Sannella,et al.  Toward Formal Development of Programs from Algebraic Specifications: Implementations Revisited (Extended Abstract) , 1987, TAPSOFT, Vol.1.

[5]  Johann A. Makowsky,et al.  An axiomatic approach to semantics of specification languages , 1983, Theoretical Computer Science.

[6]  Johann A. Makowsky,et al.  Characterizing Specification Languages which Admit Initial Semantics , 1984, Theor. Comput. Sci..

[7]  Michel Bidoit,et al.  Algebraic System Specification and Development: A Survey and Annotated Bibliography , 1991 .

[8]  Horst Herrlich,et al.  Abstract and concrete categories , 1990 .

[9]  A. R. D. Mathias,et al.  NON‐WELL‐FOUNDED SETS (CSLI Lecture Notes 14) , 1991 .

[10]  Peter Aczel,et al.  Non-well-founded sets , 1988, CSLI lecture notes series.

[11]  G. Birkhoff,et al.  On the Structure of Abstract Algebras , 1935 .

[12]  Johann A. Makowsky,et al.  An axiomatic approach to semantics of specification languages , 1983 .

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

[14]  Joseph A. Goguen,et al.  Putting Theories Together to Make Specifications , 1977, IJCAI.

[15]  J. J. Horning,et al.  PRELIMINARY REPORT ON THE LARCH SHARED LANGUAGE , 1983 .

[16]  Werner Fey,et al.  ACT TWO: An Algebraic Module Specification and Interconnection Language , 1991, AMAST.

[17]  Hartmut Ehrig,et al.  Introduction to Algebraic Specification. Part 1: Formal Methods for Software Development , 1992, Comput. J..

[18]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 2: Module Specifications and Constraints , 1990 .

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

[20]  Friedrich Ludwig Bauer,et al.  The wide spectrum language CIP-L , 1985 .

[21]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1 , 1985, EATCS Monographs on Theoretical Computer Science.