In this thesis an attempt is made to integrate the mathematical foundations and the engineering aspects of algebraic specifications. The theoretical concepts are the starting-point for the design of a practical specification language. The impact of traditional principles of software engineering and advanced features of current high level programming languages on the development of the specification language is discussed. The main characteristics of the resulting specification language is its constructivity, which enables rapid prototyping. Other important characteristics are its module mechanism and its general parameterization concept. Finally, the language contains an elegant notation supporting an explicit error detection and error handling method. The result may be considered as a strongly typed functionel programming language.
Many case studies have been carried out, includign an industrial specification of a call handling system (PABX). These case studies show that an algebraic specificatio as a formalism is not sufficient. It must be accompanied by a design methodology. The design methodology used for the PABX is object-oriented. A more theoretical contribution of this thesis is the elaboration of abstract implementations. Finally, a programming environment that supports the building of algebraic specifications is of major importance. Programming environments and rapid prototyping are briefly discussed.