• DocumentCode
    2697267
  • Title

    iContract-the JavaTM design by ContractTM tool

  • Author

    Kramer, Reto

  • Author_Institution
    Cambridge Technol. Partners, UK
  • fYear
    1998
  • fDate
    3-7 Aug 1998
  • Firstpage
    295
  • Lastpage
    307
  • Abstract
    Until today, the explicit specification of “software contracts” by means of class invariants and method pre- and post-conditions was only available to Eiffel developers. iContract is the first tool that provides the same thorough support for Java. iContract is a freely available source-code pre-processor that instruments source-code with checks for class invariants as well as preand post-conditions that may be associated with methods in classes and interfaces. Special comment tags (@pre, @post, @invariant) are interpreted by iContract and converted into assertion check code that is inserted into the source-code. iContract supports universal and existential quantifiers in contract expressions. Contracts are propagated via all 4 Java type extension mechanisms (class extension: innerclasses, interface implementation and interface extension). Due to the non-mandatory nature of the comment tags, source code that contains design by contract annotations remains fully compatible with Java and can thus be processed with standard Java compilers, enabling a risk-free adoption of the technique in an organisation
  • Keywords
    abstract data types; application program interfaces; formal specification; object-oriented programming; program processors; software tools; Java compilers; Java design by contract tool; Java type extension mechanisms; assertion check code; class invariant checks; explicit specification; iContract; interfaces; post-conditions; pre-conditions; software contracts; source code preprocessor; special comment tags; Code standards; Contracts; Debugging; Documentation; Instruments; Java; Logic design; Logic testing; Observability; Unified modeling language;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Technology of Object-Oriented Languages, 1998. TOOLS 26. Proceedings
  • Conference_Location
    Santa Barbara, CA
  • Print_ISBN
    0-8186-8482-8
  • Type

    conf

  • DOI
    10.1109/TOOLS.1998.711021
  • Filename
    711021