Cleanroom software development (Mills, Dyer et al., 1987; Cobb and Mills, 1990; Linger, 1994; Prowell, Trammell et al., 1999) is a software development philosophy that is based on avoiding software defects by using formal methods of development and a rigorous inspection process. The name ‘Cleanroom’ was derived by analogy with semiconductor fabrication units. In these units (cleanrooms) defects are avoided by manufacturing in an ultra-clean atmosphere. The objective of this approach to software development is zero-defect software.
The Cleanroom approach to software development is based on five key strategies:
A model of the Cleanroom process, adapted from the description given by Linger (Linger, 1994), is shown below. This shows how these essential strategies are integrated.
Figure 1: The Cleanroom process
Cleanroom teams discusses the team organisation for the Cleanroom process.
Rigorous inspection explains the inspection approach used.
Cleanroom experience discusses the experiences with the Cleanroom approach and its effectiveness.
Cobb, R. H. and Mills, H. D. (1990). Engineering Software under Statistical Quality Control. IEEE Software,7(6), 44-54.
Linger, R. C. (1994). Cleanroom Process Model. IEEE Software,11(2), 50-8.
Mills, H. D., Dyer, M. and Linger, R. (1987). Cleanroom Software Engineering. IEEE Software,4(5), 19-25.
Prowell, S. J., Trammell, C. J., Linger, R. C. and Poore, J. H. (1999). Cleanroom Software Engineering: Technology and Process. Reading, Mass.: Addison-Wesley.