Eiffel: the language
OPEN: Toward method convergence?
Computer
Open complex computer based systems: only the first step along the way to safe, reliable computing
ECBS'99 Proceedings of the 1999 IEEE conference on Engineering of computer-based systems
Mathematical and Computer Modelling: An International Journal
Hi-index | 0.00 |
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