Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!dali.cs.montana.edu!uakari.primate.wisc.edu!sdd.hp.com!wuarchive!udel!haven.umd.edu!mimsy!dftsrv!heawk1!herreid From: herreid@heawk1.gsfc.nasa.gov ( Leon Herreid ) Newsgroups: comp.software-eng Subject: Re: The Cleanroom Methodology Keywords: Cleanroom Message-ID: Date: 10 May 91 15:58:46 GMT References: Sender: news@dftsrv.gsfc.nasa.gov Lines: 62 Colleagues, Thank you for your responses to my query about the Cleanroom methodology. Many of you asked to know what I learned. In a nutshell, it works like this. Cleanroom advocates argue that debugging is an inefficient way to remove software defects, that it's more efficient to prevent defects than to remove them. Their technique to prevent defects is (1) to write the user documentation before you design and code, so your goals are defined precisely, and (2) to design and code in a team and without the use of a compiler, linker, and debugger. All the team members read all the code, digging out problems. (You get very readable code this way.) The development team delivers its software to a certification team who compiles and links it, and then exercises it. The exercises are defined by a test team, based on the original specification and on the expected usage pattern. Problems are reported back to the developers who deliver revised source files. My apologies to H. Mills if I have misrepresented his thinking. The following references explained these ideas to me. This is the most careful exposition of the methodology that I've found. As I understand it, Mills originally formulated the methodology in the early 1980's... "Engineering Software under Statistical Quality Control" Richard H. Cobb and Harlan D. Mills IEEE Software, November 1990, pages 44-54 This well known article discusses Cleanroom in general terms. It does not describe the methodology in detail. The date of the article is listed incorrectly in the first reference... "Cleanroom Software Engineering" Harlan D. Mills, Michael Dyer, and Richard C. Linger IEEE Software, September 1987, pages 19-25 There has been some research comparing Cleanroom with other methodologies. This article is based on Selby's PhD research... "Cleanroom Software Development: An Empirical Evaluation" Richard W. Selby, Victor R. Basili, and F. Terry Baker IEEE Trans. on Software Eng., September 1987, pages 1027-1037 Part of the Cleanroom concept is to produce an estimate of the reliability of software. This article describes how to estimate the mean time to failure (MTTF) of a software product... "Certifying the Reliability of Software" P. Allen Currit, Michael Dyer, and Harlan D. Mills IEEE Trans. on Software Eng., January 1986, pages 3-11 Studying these papers will give you a good idea of the Cleanroom methodology. You can follow the references to get more information. I do not know of a publically available 'recipe' that lists all the steps and products, but you can figure it out from the literature. A little brainwork never hurt anybody. Leon Herreid herreid@xenium.gsfc.nasa.gov