A program whose function and working can be obtained from a reading of the program text, without additional documentation. Structured design, the use of a high-level language, careful choice of identifiers, and judicious use of comments all contribute to this end.