• DocumentCode
    823528
  • Title

    Uncovering hidden contracts: the .NET example

  • Author

    Arnou, K. ; Meyer, Bertr

  • Author_Institution
    Swiss Fed. Inst. of Technol., Zurich, Switzerland
  • Volume
    36
  • Issue
    11
  • fYear
    2003
  • Firstpage
    48
  • Lastpage
    55
  • Abstract
    Software contracts take the form of routine preconditions, postconditions, and class invariants written into the program itself. The design by contract methodology uses such contracts for building each software element, an approach that is particularly appropriate for developing safety-critical software and reusable libraries. This methodology is a key design element of some existing libraries, especially the Eiffel Software development environment, which incorporates contract mechanisms in the programming language itself. Because the authors see the contract metaphor as inherent to quality software development, they undertook the work reported in the article as a sanity check to determine whether they see contracts everywhere simply because their development environment makes using them natural or whether contracts are intrinsically present, even when other designers don´t express or even perceive them. They studied classes from the .NET collections library for implicit contracts and assessed improvements that might result from making them explicit.
  • Keywords
    contracts; programming environments; safety-critical software; software libraries; software quality; software reusability; Eiffel software development environment; NET collections library; class invariants; contract mechanisms; contract metaphor; design by contract; hidden contracts; implicit contracts; libraries; postconditions; programming language; quality software development; reusable libraries; routine preconditions; safety-critical software; software contracts; software element; Application software; Computer bugs; Contracts; Documentation; Robustness; Runtime; Software debugging; Software libraries; Software tools; Testing;
  • fLanguage
    English
  • Journal_Title
    Computer
  • Publisher
    ieee
  • ISSN
    0018-9162
  • Type

    jour

  • DOI
    10.1109/MC.2003.1244535
  • Filename
    1244535