Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/646930.710411guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

jContractor: A Reflective Java Library to Support Design by Contract

Published: 19 July 1999 Publication History
  • Get Citation Alerts
  • 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.

    References

    [1]
    Andrew Duncan and Urs Hölzle. Adding Contracts to Java with Handshake. Technical Report TRC98-32, University of California, Santa Barbara, 1998.
    [2]
    C.A.R. Hoare. An Axiomatic Basis for Computer Programming. Communications of the ACM, 12(10), October 1969.
    [3]
    Murat Karaorman and John Bruno. Introducing Concurrency to a Sequential Language. Communications of the ACM. Vol. 36, No. 9, September 1993, pp. 103- 116.
    [4]
    Reto Kramer. iContract - The Java Design by Contract Tool. Proc. of TOOLS '98, Santa Barbara, CA August 1998. Copyright IEEE 1998.
    [5]
    Ralph Keller and Urs Hölzle. Binary Component Adaptation. Proc. of ECOOP '98, Lecture Notes in Computer Science, Springer Verlag, July 1998.
    [6]
    Bertrand Meyer. Applying Design by Contract. In Computer IEEE), vol. 25, no. 10, October 1992, pages 40-51.
    [7]
    Bertrand Meyer: Eiffel: The Language, Prentice Hall, 1992.
    [8]
    Mike Mannion and Roy Phillips. Prevention is Better than a Cure. Java Report, Sept. 1998.
    [9]
    S. Porat and P. Fertig. Class Assertions in C++. Journal of Object Oriented Programming, 8(2):30-37, May 1995.
    [10]
    Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification. Addison-Wesley, 1996.

    Cited By

    View all
    • (2013)Contracts for First-Class ClassesACM Transactions on Programming Languages and Systems10.1145/251818935:3(1-58)Online publication date: 1-Nov-2013
    • (2012)Automatic generation of test models and properties from UML models with OCL constraintsProceedings of the 12th Workshop on OCL and Textual Modelling10.1145/2428516.2428525(49-54)Online publication date: 30-Sep-2012
    • (2010)Contracts for first-class classesACM SIGPLAN Notices10.1145/1899661.186964245:12(97-112)Online publication date: 18-Oct-2010
    • Show More Cited By

    Index Terms

    1. jContractor: A Reflective Java Library to Support Design by Contract
      Index terms have been assigned to the content through auto-classification.

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image Guide Proceedings
      Reflection '99: Proceedings of the Second International Conference on Meta-Level Architectures and Reflection
      July 1999
      270 pages
      ISBN:3540662804

      Publisher

      Springer-Verlag

      Berlin, Heidelberg

      Publication History

      Published: 19 July 1999

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0

      Other Metrics

      Citations

      Cited By

      View all
      • (2013)Contracts for First-Class ClassesACM Transactions on Programming Languages and Systems10.1145/251818935:3(1-58)Online publication date: 1-Nov-2013
      • (2012)Automatic generation of test models and properties from UML models with OCL constraintsProceedings of the 12th Workshop on OCL and Textual Modelling10.1145/2428516.2428525(49-54)Online publication date: 30-Sep-2012
      • (2010)Contracts for first-class classesACM SIGPLAN Notices10.1145/1899661.186964245:12(97-112)Online publication date: 18-Oct-2010
      • (2010)Contracts for first-class classesProceedings of the 6th symposium on Dynamic languages10.1145/1869631.1869642(97-112)Online publication date: 18-Oct-2010
      • (2009)Nested and dynamic contract boundariesProceedings of the 21st international conference on Implementation and application of functional languages10.5555/1929087.1929096(141-158)Online publication date: 23-Sep-2009
      • (2009)Language subsetting via reflection and overloadingProceedings of the 39th IEEE international conference on Frontiers in education conference10.5555/1733663.1733941(1187-1192)Online publication date: 18-Oct-2009
      • (2009)Generating Assertion Code from OCLProceedings of the 12th International Conference on Model Driven Engineering Languages and Systems10.1007/978-3-642-04425-0_52(650-664)Online publication date: 1-Oct-2009
      • (2007)Relationally-parametric polymorphic contractsProceedings of the 2007 symposium on Dynamic languages10.1145/1297081.1297089(29-40)Online publication date: 22-Oct-2007
      • (2007)Overview and Evaluation of Constraint Validation Approaches in JavaProceedings of the 29th international conference on Software Engineering10.1109/ICSE.2007.60(313-322)Online publication date: 24-May-2007
      • (2006)A tool architecture to verify properties of multiagent system at runtimeProceedings of the 4th international conference on Programming multi-agent systems10.5555/1759324.1759340(201-216)Online publication date: 9-May-2006
      • Show More Cited By

      View Options

      View options

      Get Access

      Login options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media