The production of design documents plays a key role in engineering practice. The validation of documented designs, using pre-established criteria, is a major part of engineering. Conventional engineering documents are sufficiently detailed and precise that one can, for example, derive differential equations from the information that the contain. We propose similarly precise documents for computer systems and their components.
This paper discusses the content of certain computer systems documents, without specifying their from. To accomplish this it defines documents in terms of the mathematical functions that must be described. Representational issues are discussed in separate papers.
The documents described in this paper include: the "system requirements document", the "system design document", the "software requirements document", and optional "software behaviour specification", the "module interface specification", and the "module internal design document". The content of each of these documents is specified precisely. Some other documents, including hardware descriptions and communication protocol descriptions, are mentioned briefly.