This paper is probably the first publication addressing to the organisation of software development into nine phases. This papers foreshadowed what was later called as the "waterfall" model.
First an operational plan defines broad design requirements for the complete control system consisting of the machine, the operator, and the system program. This plan must be prepared jointly by the computer systems engineers and the eventual user of the system.
From this plan, detailed operational specifications are prepared that precisely define the "transfer function" of the control system. In this representation, the computer, its terminal equipment, and the system program are treated as a black box. On the other hand, the description is sufficiently detailed that programmers can later prepare the system program using only machine and operational specifications. The operational specifications correspond to the equations the scientist gives a programmer; numerical analysis has yet to be performed.
Program specifications outline implementation of the operational black box by the system program. These specifications organize the program into component subprograms and tables, indicate main channels of program intracommunication, and specify time- and storage-sharing of the machine by each subprogram. Continuing the analogy, program specifications correspond to a broad flowchart of the solution.
After the operational and program specifications have been completed, detailed coding specifications are prepared that define the transfer function each component subprogram in terms of the processing of central and isolated items. From these specifications, it is possible to predict precisely the output of the subprogram for any configuration of input items. The coding specifications also describe storage tables.
Each component subprogram is coded using the coding specifications. Ideally, this phase would be a simple mechanical translation; actually, detailed coding uncovers inconsistencies that require revisions in the coding specifications (and occasionally in the operational specifications).
After coding, each component subprogram is parameter tested on the machine by itself. This testing phase uses an environment that simulates pertinent portions of the system program. Each test performed during this phase is documented in a set of test specifications that detail the environment used and the outputs obtained. In the figure, the dashed line indicates that parameter testing is guided by the coding specifications instead of by the coded program; in other words, a programmer must prove that he satisfied his specifications, not that his program will perform as coded. (Actually, test specifications for one subprogram can be prepared in parallel with the coding).
As parameter testing of component subprograms is completed, the system is gradually assembled and tested using first simulated inputs and then live data. For each test performed during this period, assembly test specifications are prepared that indicate test inputs and recorded outputs. Assembly testing indicates that a system program satisfies the operational and program specifications.
When the completed program has been assembled, it is tested in its operational environment during shakedown. At the completion of this phase, the program is ready for operation and evaluation.
the cost of producing a 100,000-instruction system program comes to about $5,500,000 or $55 per machine instruction. In other words, the time and cost required to prepare a system program are comparable with the time and cost of building the computer itself.