Abstraction and specification in program development
Abstraction and specification in program development
ICSE '89 Proceedings of the 11th international conference on Software engineering
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Part IV: RESOLVE components in Ada and C++
ACM SIGSOFT Software Engineering Notes
The ASTOOT approach to testing object-oriented programs
ACM Transactions on Software Engineering and Methodology (TOSEM)
A Practical Approach to Programming With Assertions
IEEE Transactions on Software Engineering
Composition Validation and Subjectivity in GenVoca Generators
IEEE Transactions on Software Engineering
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
A technique for software module specification with examples
Communications of the ACM
Object-Oriented Software Construction
Object-Oriented Software Construction
Recasting Algorithms to Encourage Reuse
IEEE Software
Checkmate: cornering C++ dynamic memory errors with checked pointers
Proceedings of the thirty-first SIGCSE technical symposium on Computer science education
Experience report: using RESOLVE/C++ for commercial software
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
A formal approach to component-based software engineering: education and evaluation
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Increasing client-side confidence in remote component implementations
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Behavioral contracts and behavioral subtyping
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Engineering human trust in mobile system collaborations
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Contract-Checking Wrappers for C++ Classes
IEEE Transactions on Software Engineering
Model variables: cleanly supporting abstraction in design by contract: Research Articles
Software—Practice & Experience
Nested and dynamic contract boundaries
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
Hi-index | 0.00 |
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 components, 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.