Welcome!
To use the personalized features of this site, please log in or register.
If you have forgotten your username or password, we can help.
My Menu
Saved Items

jContractor: A Reflective Java Library to Support Design By Contract

Murat Karaorman5, 6 Contact Information, Urs HölzleContact Information and John BrunoContact Information

(5)  Texas Instruments Inc., 315 Bollay Drive, Santa Barbara, California, 93117
(6)  Department of Computer Science, University of California, Santa Barbara, CA, 93106
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.

Contact Information Murat Karaorman
Email: muratk@ti.com

Contact Information Urs Hölzle
Email: urs@cs.ucsb.edu

Contact Information John Bruno
Email: bruno@cs.ucsb.edu
Fulltext Preview (Small, Large)
Image of the first page of the fulltext

References secured to subscribers.



Export this chapter
Export this chapter as RIS | Text
 
Remote Address: 38.107.191.107 • Server: mpweb06
HTTP User Agent: CCBot/1.0 (+http://www.commoncrawl.org/bot.html)