Algebraic properties of interfaces

  • Authors:
  • Michael Löwe;Harald König;Christoph Schulz

  • Affiliations:
  • Fachhochschule für die Wirtschaft (FHDW), Hannover, Germany;Fachhochschule für die Wirtschaft (FHDW), Hannover, Germany;Fachhochschule für die Wirtschaft (FHDW), Hannover, Germany

  • Venue:
  • Formal Methods in Software and Systems Modeling
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Interfaces became one of the most important features in modern software systems, especially in object-oriented systems. They provide for abstraction and detail hiding and, therefore, contribute to readable and reusable software construction. Formal specification methods have also addressed interfaces and provided formal semantics to them. These semantics are always based on some forgetful and/or restriction constructions. The main focus has been laid on integrating these constructions with free or behaviourable constructions in order to provide some combined semantics for specification modules. In this paper, we investigate the algebraic properties of “forgetting” and “restricting”. We define two different notions of model category for algebraic specification with explicit interface signatures, so-called interface specifications. The first one uses forgetful constructions only, the second one integrates the restriction to the part reachable by the interface. We investigate closure properties of these categories w.r.t. subalgebras, products and directed limits. This analysis provides the first result, namely that interface specifications with Horn-axioms do not exceed the expressiveness of Horn-axiom specifications without interfaces. The inverse is more interesting. We show that each category specified by Horn-axioms can be specified by simple equations on possibly hidden operations. The constructive proof for this theorem leads to the next main result that every class specified by an interface specification with restriction semantics possesses an interface specification using forgetful semantics only.