Mike Barnett and Wolfram Schulte
A natural way to specify component-based systems is by an interface specification. Such a specification allows clients of a component to know not only its syntactic properties, as is current practice, but also its semantic properties. Any component implementation must be a behavioral refinement of its interface specification. We propose the use of executable specifications and a runtime monitor to check for behavioral equivalence between a component and its specification. Furthermore, we take advantage of the COM infrastructure to perform this kind of runtime verification without any instrumentation of the implementation, i.e., without any recompilation or re-linking.
In Workshop on Specification and Verification of Component-Based Systems