• DocumentCode
    763288
  • Title

    Programming by contract

  • Author

    McKim, J.C., Jr.

  • Author_Institution
    Dept. of Comput. & Inf. Sci., Hartford Graduate Center, CT, USA
  • Volume
    29
  • Issue
    3
  • fYear
    1996
  • fDate
    3/1/1996 12:00:00 AM
  • Firstpage
    109
  • Lastpage
    111
  • Abstract
    "Why can\´t software be more like hardware?" has been the software engineer\´s lament for nearly as long as there have been large software systems. In particular, why isn\´t there a software components industry to rival the existing hardware components industry? Hardware components come with the following attributes: an interface that hides detail that would only confuse or at least distract me; an unambiguous interface specification written in a language I can understand (in the case of the integrated circuit, this may be a fairly complex language, but it\´s one I expect to learn if I\´m going to work with that hardware); a guarantee-the component has been tested and/or validated against its specification. All three items-especially the last one-are notably lacking for software components. Indeed, software tends to come with an antiguarantee, otherwise known as a disclaimer. All of the above points rely on a rigorous specification of the hardware component\´s interface. In a nutshell, programming by contract is about providing just such specifications for software components (that is, classes), and it provides the best hope of a basis for a true software component industry. The discussion focuses on object oriented software.
  • Keywords
    DP industry; contracts; economics; formal specification; object-oriented programming; user interfaces; classes; disclaimer; guarantee; hardware components industry; interface; large software systems; object oriented software; programming by contract; rigorous specification; software components; software components industry; unambiguous interface specification; Application software; Computer industry; Contracts;
  • fLanguage
    English
  • Journal_Title
    Computer
  • Publisher
    ieee
  • ISSN
    0018-9162
  • Type

    jour

  • DOI
    10.1109/2.485902
  • Filename
    485902