The objective of this paper is to present the theoretical basis and pr
actical application of incremental development in the Cleanroom softwa
re engineering process. Incremental development is based on the mathem
atical principle of referential transparency. Cleanroom uses increment
al development to build systems in a succession of cumulative subsets
of user function. The increments accumulate top-down into the final pr
oduct in a development and certification pipeline. Increment planning
occurs after top-level specification, and results in a construction pl
an for the software. Factors determining the composition of increments
include clarity of requirements, usage probability of user functions,
reliability requirements for subsystems, coordination with the hardwa
re development schedule, dependencies between functions, complexity, r
euse, or other factors that pose risks to the project. Each increment
involves a complete development and certification cycle. The first inc
rement is a minimal system, and the final increment is the complete sy
stem. User feedback on each increment is a gauge on whether the right
system is being built, and quality measures in each increment are a ga
uge on whether the system is being built right. Benefits of incrementa
l development include customer feedback on the evolving system, intell
ectual control of the technical work, and management control of the sc
hedule and budget. While incremental development may be used with othe
r development methods, it is particularly effective when used with the
formal methods in the Cleanroom process.