• DocumentCode
    555284
  • Title

    Inferring better contracts

  • Author

    Wei, Yi ; Furia, Carlo A. ; Kazmin, Nikolay ; Meyer, Bertrand

  • Author_Institution
    ETH Zurich, Zürich, Switzerland
  • fYear
    2011
  • fDate
    21-28 May 2011
  • Firstpage
    191
  • Lastpage
    200
  • Abstract
    Considerable progress has been made towards automatic support for one of the principal techniques available to enhance program reliability: equipping programs with extensive contracts. The results of current contract inference tools are still often unsatisfactory in practice, especially for programmers who already apply some kind of basic Design by Contract discipline, since the inferred contracts tend to be simple assertions - the very ones that programmers find easy to write. We present new, completely automatic inference techniques and a supporting tool, which take advantage of the presence of simple programmer-written contracts in the code to infer sophisticated assertions, involving for example implication and universal quantification. Applied to a production library of classes covering standard data structures such as linked lists, arrays, stacks, queues and hash tables, the tool is able, entirely automatically, to infer 75% of the complete contracts - contracts yielding the full formal specification of the classes - with very few redundant or irrelevant clauses.
  • Keywords
    formal specification; inference mechanisms; software reliability; arrays; contract inference tool; design-by-contract discipline; formal specification; hash tables; inference technique; linked lists; program reliability; queues; stacks; Contracts; Data mining; Data structures; Decision trees; Indexes; Software; Software reliability; contract inference; data mining; invariants; random testing;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering (ICSE), 2011 33rd International Conference on
  • Conference_Location
    Honolulu, HI
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-4503-0445-0
  • Electronic_ISBN
    0270-5257
  • Type

    conf

  • DOI
    10.1145/1985793.1985820
  • Filename
    6032458