Checking behavioural subtypes via refinement

  • Authors:
  • Heike Wehrheim

  • Affiliations:
  • Universität Oldenburg, Fachbereich Informatik, Postfach 2503, D-26111 Oldenburg, Germany

  • Venue:
  • FMOODS '02 Proceedings of the IFIP TC6/WG6.1 Fifth International Conference on Formal Methods for Open Object-Based Distributed Systems V
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Behavioural subtyping is concerned with the question of whether one class is behaviourally consistent with another class. The word "behaviour" in this context usually refers to the semantics of methods, typically given by pre- and postconditions. In this paper, we will use this term in a more specific way, referring to the dynamic behaviour of objects in time. Behaviour descriptions of classes give sequencing constraints on method invocations, in this paper formulated using the process algebra CSP.Behavioural subtyping can be seen as a mixture of refinement and inheritance: we expect the subtype to be substitutable for the supertype while at the same moment allowing extension of functionality. Since refinement itself does not allow extension of functionality, a subtyping definition must therefore extend standard refinement concepts to cope with additional methods in the subtype. In this paper, we show for three such subtyping relations how they can, despite these extensions, be checked via refinement. This gives us the possibility of employing standard refinement checkers for CSP (viz. the FDR modelchecker) for subtype checks.