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
Link To Document :
بازگشت