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
Link To Document