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
Contract Soundness for object-oriented languages
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Specifying and implementing the operational use of constraints in object-oriented applications
CRPIT '02 Proceedings of the Fortieth International Conference on Tools Pacific: Objects for internet, mobile and embedded applications
A Simple and Practical Approach to Unit Testing: The JML and JUnit Way
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Adding Design by Contract to the Ada Language
Ada-Europe '02 Proceedings of the 7th Ada-Europe International Conference on Reliable Software Technologies
ECOOP '00 Proceedings of the Workshops, Panels, and Posters on Object-Oriented Technology
jContractor: A Reflective Java Library to Support Design by Contract
Reflection '99 Proceedings of the Second International Conference on Meta-Level Architectures and Reflection
Runtime verification of .NET contracts
Journal of Systems and Software - Special issue on: Component-based software engineering
The UniTesK Approach to Designing Test Suites
Programming and Computing Software
Contract-Checking Wrappers for C++ Classes
IEEE Transactions on Software Engineering
How the design of JML accommodates both runtime assertion checking and formal verification
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
jContractor: Introducing Design-by-Contract to Java Using Reflective Bytecode Instrumentation
Formal Methods in System Design
Overview and Evaluation of Constraint Validation Approaches in Java
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Contracts for aspect-oriented design
Proceedings of the 2008 AOSD workshop on Software engineering properties of languages and aspect technologies
Contract Specification in Java: Classification, Characterization, and a New Marker Method
IEICE - Transactions on Information and Systems
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
MODELS '09 Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems
Proceedings of the 2010 ACM Symposium on Applied Computing
Nested and dynamic contract boundaries
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
Contracts as pairs of projections
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
A methodology for writing class contracts
SOFSEM'05 Proceedings of the 31st international conference on Theory and Practice of Computer Science
Hi-index | 0.00 |
Contracts describe an agreement between the writer and the user of a class. Their use enhances programmer productivity and program reliability, especially in library code. Handshake provides contracts for Java classes and interfaces in the form of class invariants and method pre- and postconditions. Using Handshake, a programmer can add contracts to classes and interfaces without needing access to their source code, without changing the class files, and without changing the JVM implementation. Unlike existing implementations of contracts for Java, Handshake intercepts the VM''s file operations and modifies classes on the fly without requiring any modification to the JVM itself. By using a dynamic link library interposed between the VM and the operating system, the system is relatively simple to port to a new OS and works with a variety of JVM implementations. The system imposes very little overhead other than the time required to evaluate the contract''s boolean expressions themselves.