The Specification of 'Specification'

Derek Partridge and Antony Galton

Minds and Machines, Volume 5 (2), May 1995, pages 243-255. Kluwer Academic Publishers, Dordrecht, ISSN 0924-6495.

Abstract

The notion of "specification" plays a key role in the developing science of computing. It is typically considered to be the keystone in the software development process. However, there is no single, generally agreed meaning of "specification" that bears close scrutiny. Instead there is a variety of different, although partially interlocking and overlapping interpretations of the term.

We catalogue this varietal profusion and attempt to lay bare both the sources and consequences of each major alternative. We attempt to present the full range of possibilities, and the biases inherent in each style of interpretation.

We believe that there is a pressing need for clarification of the meaning of "specification" (and several other important terms), especially in view of the fact that so many practitioners and theoreticians assume, erroneously, that a clear meaning already exists (even though they might disagree as to what it is). In particular, we feel that a more general awareness of the difficulties that currently attach to this key concept may go some way towards bridging (if not actually healing) the rift that currently exists between the engineering and scientific aspects of computing.