Title
jContractor: A Reflective Java Library to Support Design by Contract
Abstract
jContractor is a purely library 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 providing contract methods following jContractor naming conventions. jContractor uses Java Reflection to synthesize an instrumented version of a Java class by incorporating code that enforces the present jContractor contract specifications. Programmers enable the run-time enforcement of contracts by either engaging the jContractor class loader or by explicitly instantiating objects using the jContractor object 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 requires no special tools such as modified compilers, modified JVMs, or pre-processors.
Year
DOI
Venue
1999
10.1007/3-540-48443-4_18
Meta-Level Architectures and Reflection
Keywords
Field
DocType
jcontractor naming convention,instrumented version,instrument java class,java class,reflective java library,support design,jcontractor object factory,present jcontractor contract specification,jcontractor class loader,class invariants,jcontractor contract specification,jcontractor design pattern,java reflection,contract method,contract specification,java implementation,standard java syntax,design by contract
Programming language,Computer science,Java annotation,Design by contract,Java concurrency,Real time Java,Java syntax,Generics in Java,Java Modeling Language,Java,Distributed computing
Conference
ISBN
Citations 
PageRank 
3-540-66280-4
54
4.17
References 
Authors
7
3
Name
Order
Citations
PageRank
Murat Karaorman111210.96
Urs Hölzle23492346.29
John L. Bruno3439246.04