Runtime Validation of Behavioural Contracts for Component Software

  • Authors:
  • Yan Jin;Jun Han

  • Affiliations:
  • Swinburne University of Technology, Hawthorn, Australia;Swinburne University of Technology, Hawthorn, Australia

  • Venue:
  • QSIC '05 Proceedings of the Fifth International Conference on Quality Software
  • Year:
  • 2005

Quantified Score

Hi-index 0.01

Visualization

Abstract

In component software, the independence of components is achieved by separating their interfaces from implementations. The interface definition of a component serves as the contract with its neighbouring components regarding the use of its services. In general, such a contract should cover issues beyond interface signatures, such as service functionality, usage and quality. The Interface Definition Languages (IDLs) used by commercial middleware such as CORBA, however, lack mechanisms for capturing such semantic characteristics. In this paper, we introduce a framework and associated techniques that augment commercial IDLs with behavioural contract specifications and validate at runtime component interactions against such contracts. The behavioural contract of a component describes occurrence or sequencing constraints on its interactions with the environment. The validation of such constraints is achieved by intercepting runtime interactions between components and validating them against the finite state automata that semantically represent the constraints. The validation provides a useful tool for testing whether the component services are used properly and whether the component fulfils its behavioural obligations in a distributed system.