We found a match
Your institution may have access to this item. Find your institution then sign in to continue.
- Title
Contract.- Checking, Wrappers for C++ Classes.
- Authors
Edwards, Stephen H.; Sitaram, Murali; Weide, Bruce W.; Hollingsworth, Joseph
- Abstract
Two kinds of interface contract violations can occur in component-based software: A client component can fail to satisfy a requirement of a component it is using, or a component implementation can fail to fulfill its obligations to the client. The traditional approach to detecting and reporting such violations is to embed assertion checks into component source code, with compile-time control over whether they are enabled. This works well for the original component developers, but it fails to meet the needs of component clients who do not have access to source code for such components. A wrapper-based approach, in which contract checking is not hard-coded into the underlying component but is "layered" on top of it, offers several relative advantages, It is practical and effective for C++ classes. Checking code can be distributed in binary form along with the underlying component, it can be installed or removed without requiring recompilation of either the underlying component or the client code, it can be selectively enabled or disabled by the component client on a per-component basis, and it does not require the client to have access to any special tools (which might have been used by the component developer) to support wrapper installation Sand control. Experimental evidence indicates that wrappers in C++ impose modest additional overhead compared to inlining assertion checks.
- Subjects
COMPUTER checkers; COMPUTER software; C++; SOFTWARE shells; SOURCE code
- Publication
IEEE Transactions on Software Engineering, 2004, Vol 30, Issue 11, p794
- ISSN
0098-5589
- Publication type
Article
- DOI
10.1109/TSE.2004.80