[comp.software-eng] The Cleanroom Methodology

herreid@heawk1.gsfc.nasa.gov ( Leon Herreid ) (05/08/91)

Colleagues,

I'm writing a "Software Development Plan" for a system that I estimate
is a hundred thousand lines of code (a forty man-year effort).  It's a
mission planning and data processing facility for a scientific
satellite.  I'm interested in the Cleanroom methodology described in,
for example,

        Richard H. Cobb and Harlan D. Mills
        "Engineering Software under Statistical Quality Control"
        IEEE Software, pages 44-54, November 1990

but I can't find enough practical information on the methodology to
adapt it to my situation.  Some of the article's references have
appealing titles, but my library doesn't have them.

I'd appreciate hearing of any easily available references and any
applicable experiences you've had.

Leon Herreid         internet:  herreid@xenium.gsfc.nasa.gov

jcm@mstr.hgc.edu (James McKim) (05/09/91)

In article <herreid.673646984@heawk1> herreid@heawk1.gsfc.nasa.gov ( Leon Herreid ) writes:
>Colleagues,
>
>I'm writing a "Software Development Plan" for a system that I estimate
>is a hundred thousand lines of code (a forty man-year effort).  It's a
>mission planning and data processing facility for a scientific
>satellite.  I'm interested in the Cleanroom methodology described in,
>for example,
>
>        Richard H. Cobb and Harlan D. Mills
>        "Engineering Software under Statistical Quality Control"
>        IEEE Software, pages 44-54, November 1990
>
>but I can't find enough practical information on the methodology to
>adapt it to my situation.  Some of the article's references have
>appealing titles, but my library doesn't have them.
>
>I'd appreciate hearing of any easily available references and any
>applicable experiences you've had.

I suggest you contact Mills's company

  Information Systems Institute
  2770 Indian River Blvd
  Vero Beach, FL 32960

I'm sure they will be more than happy to supply references and,
more importantly, they offer training.
>
>Leon Herreid         internet:  herreid@xenium.gsfc.nasa.gov


Hope this helps.
-- Jim


*------------------------------------------------------------------------------*
Jim McKim  (203)-548-2458    | _Give_ people fish and they eat for a day.  
Internet:  jcm@mstr.hgc.edu  | _Teach_ people to fish and they eat for a lifetime.

cml@care.cs.umd.edu (Christopher Lott) (05/10/91)

Here's one citation.  There are more in the SEL series addressing
cleanroom, but I don't have the full listing at hand.


NASA, "The Cleanroom Case Study in the Software Engineering Laboratory:
Project Description and Early Analysis," Software Engineering Laboratory
Series, Report SEL-90-002, March 1990.


Single copies available from Systems Development Branch, Code 552,
NASA Goddard Space Flight Center, Greenbelt, Maryland 20771. 

chris...
--
Christopher Lott \/ Dept of Comp Sci, Univ of Maryland, College Park, MD 20742
  cml@cs.umd.edu /\ 4122 AV Williams Bldg  301 405-2721 <standard disclaimers>

herreid@heawk1.gsfc.nasa.gov ( Leon Herreid ) (05/10/91)

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