Interface Violation Detection

Well-designed component interface contracts include
  • client obligations
  • component guarantees
Interface violation detection framework
  • generates parameterized component and client-end violation checking wrappers
  • allows checking to be turned "on" or "off" selectively for integration testing
  • uses mathematical models to permit non-intrusive violation checking
  • Currently generates "checking" C++ templates

 Introductory Article on the Topic

S. H. Edwards, G. Shakir, M. Sitaraman, B. W. Weide, and J. E. Hollingsworth, “A Framework for Interface Violation Detection in Component-Based Software,” IEEE Computer Society Procs. Fifth Int. Conf. On Software Reuse, Victoria, Canada, June 1998, 46-55.
 

Abstract

Two kinds of interface contract violations can occur in component-based software: a client component may fail to satisfy a requirement of a component it is using, or a component implementation may fail to fulfill its obligations to the client.  This paper proposes a systematic approach for detecting both kinds of violations, so that violation detection is not hard-coded into base-level com-pon-ents, but is “layered” on top of them, and so that it can be turned “on” or “off” selectively for one or more components, with practically no change to executable code (limiting changes to a few declarations).  Among the salient features of this approach are its use of formal specifications, the ability to handle parameterized (i.e., generic, or template) components, and the automatic generation of routine aspects of violation detection.  We have designed, built, and experimented with a generator of checking components for C++ templates.
 

Keywords

specification, error handling, wrapper, checking component, generator, design by contract, generic, template.

Other Publications



 
This site maintained by Steven Atkinson, with assistance from Murali Sitaraman