|
Published Articles >> Table of Contents >> Abstract
November 2003 (Vol. 36, No. 11)
pp. 48-55
Uncovering Hidden Contracts: The .NET Example
Karine Arnout, ETH (Swiss Federal Institute of Technology)
Bertrand Meyer, ETH (Swiss Federal Institute of Technology)
Full Article Text:
  
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MC.2003.1244535
Send link to a friend
| 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 here as a sanity check to determinewhether 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.
|
References
|
[1] B. Meyer,“Applying design by contract,”IEEE Comput., vol. 25, pp. 40–51, Oct. 1992.
[2] B. Meyer, Object-Oriented Software Construction, 2nd ed., Prentice Hall, Upper Saddle River, N.J., 1997.
[3] R. Mitchell and J. McKim, Design by Contract, by Example, Addison-Wesley, 2002.
[4] J.M. Jezequel and B. Meyer, "Design by Contract: The Lessons of Ariane," Computer, Jan. 1997, pp. 129-130.
[5] Microsoft, ".NET Systems.Collections Library," 2003; http://msdn.microsoft.com/library/default.asp?url=/ library/en-us/cpref/htmlfrlrfsystemcollections.asp .
[6] C.A.R. Hoare, "Proof of Correctness of Data Representations," Acta Informatica, vol. 1, 1973, pp. 271-281.
[7] K. Arnout and R. Simon, "The .NET Contract Wizard: Adding Design by Contract to Languages Other than Eiffel," Proc. TOOLS 39, IEEE CS Press, 2001, pp. 14-23.
[8] B. Meyer, Reusable Software: The Base Object-Oriented Component Libraries, Prentice Hall, 1994.
[9] M.D. Ernst, “Dynamically Discovering Likely Program Invariants,” PhD thesis, Dept. of Computer Science and Eng., Univ. of Washington, Seattle, Wash., Aug. 2000.
[10] K. McFarlane, "Design by Contract Framework for .NET," 2002; www.codeproject.com/csharpdesignbycontract.asp ; www.codeproject.com/csharp/designbycontract.aspwww.codeguru.com/ net_generaldesignbycontract.html .
|
Additional Information
|
Citation:
Karine Arnout, Bertrand Meyer,
"Uncovering Hidden Contracts: The .NET Example,"
Computer,
vol. 36,
no. 11,
pp. 48-55,
Nov.,
2003
|
|