Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
The specification and testing of quantified progress properties in distributed systems
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
ECOOP '00 Proceedings of the Workshops, Panels, and Posters on Object-Oriented Technology
Techniques for Embedding Executable Specifications in Software Component Interfaces
ICCBSS '03 Proceedings of the Second International Conference on COTS-Based Software Systems
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
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Proceedings of the 2010 ACM Symposium on Applied Computing
A methodology for writing class contracts
SOFSEM'05 Proceedings of the 31st international conference on Theory and Practice of Computer Science
Design pattern-based extension of class hierarchies to support runtime invariant checks
FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
Hi-index | 0.00 |
jContractor is a purely library and design-pattern based approach to support Design By Contract specifications such as preconditions, postconditions, class invariants, and recovery and exception handling in Java. jContractor uses an intuitive naming convention, and standard Java syntax to instrument Java classes and enforce Design By Contract constructs. The designer of a class specifies a contract by defining protected methods which conform to the jContractor design patterns. jContractor uses Java Reflection to synthesize an instrumented version of a Java class containing jContractor contract specifications. The instrumented version contains code which enforces the Design By Contract specifications. Programmers enable the run-time enforcement of contracts by either incorporating the jContractor class loader or by instantiating objects directly from the instrumented subclass through the jContractor factory. Programmers can use exactly the same syntax for invoking methods and passing object references regardless of whether contracts are present or not. Since jContractor is purely library-based, it works with any Java implementation and requires no special tools such as modified compilers, modified JVMs, or pre-processors.