| |
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
|