[comp.software-eng] Cleanroom Software Engineering

rn@tts.lth.se (Richard Niklasson) (06/04/90)

I have heard some rumours about "Cleanroom software engineering"
(Harlan D Mills ?). Anyone out there having any reference to books,
articles, tools.... or any comments on the methodology?

It should be a methodology for program verification (if I got it
right) and it has been used by NASA (spaceshuttle).

_______________________________________________________________________________
       Richard Niklasson             !      INTERNET:    rn@tts.lth.se 
       E-P Telecom / Q-Labs          !      EARN/BITNET: erlangrn@seldc51
       Research Park IDEON           !      MEMO:        mprog.epkrn         
       S-223 70  LUND                !      FAX:         +46-46-152880
       Sweden                        !      PHONE:       +46-46-182982
-------------------------------------------------------------------------------

gengenba@forwiss.uni-passau.de (Michael Gengenbach) (06/04/90)

rn@tts.lth.se (Richard Niklasson) writes:

>I have heard some rumours about "Cleanroom software engineering"
>(Harlan D Mills ?). Anyone out there having any reference to books,
>articles, tools.... or any comments on the methodology?

Cleanroom software development is a method to develop software without
using a computer to test your programs during the development process
(actually it is a little more, e.g. some administrative things, etc.).

Some references are:

   Dyer, M.: A Format Approach to Software Error Removal
      J. Systems Software 7, 109-114 (1987)
   Mills, H.D.; Dyer, M.; Linger, R.C.: Cleanroom Software Engineering
      IEEE Software, 19-25, Sept. 1987
   Selby, R.W., Basili, V.R.; Baker, F.T.: Cleanroom Software
      Development: An Empirical Evaluation
      IEEE Trans. Software Eng. 13, 1027-1037 (1987)

>It should be a methodology for program verification

They say, it is faster and the software is more reliable, but 86% of
the developers miss the fun of running their programs :-)

Michael
--
Michael Gengenbach   \/\/\/\/\/  gengenbach@forwiss.uni-passau.de
FORWISS               \/\/\/\/
University of Passau  /\/\/\/\   Phone: +49 851/509-496
West Germany         /\/\/\/\/\  Fax  : +49 851/509-497

stevebr@microsoft.UUCP (Steve BRANDLI) (06/06/90)

In article <1990Jun4.112334.20637@lth.se> rn@tts.lth.se (Richard Niklasson) writes:
>
>I have heard some rumours about "Cleanroom software engineering"
>(Harlan D Mills ?). Anyone out there having any reference to books,
>articles, tools.... or any comments on the methodology?
>
>It should be a methodology for program verification (if I got it
>right) and it has been used by NASA (spaceshuttle).

The article you refer to is:

Harlan D. Mills, Michael Dyer, and Richard C. Linger, "Cleanroom Software
Engineering", IEEE Software Sept. 1987 Pgs. 19-24.

Another:

P. Allen Currit, Michael Dyer, and Harlan D. Mills, "Certifying the Reliability
of Software", IEEE Transactions on Software Engineering, Vol. SE-12, No. 1
(Jan. 1986)

It's been awhile since I read these, but I remember them making the case that
defects in software should be tracked statistically, similarly to how defects
in chip manufacture is tracked.  Also, focusing software development on defect
prevention rather than defect protection leads to better quality.  Formal
testing then fills the role of creating feedback of the software development
process rather than role of insuring the quality of a given piece of software.

These ideas have been partly implemented at Microsoft, with a policy we call
zero-defects.  We have found the time spent to insure good quality before the
code is considered "feature complete" gives us overall better quality and also
gives us the bonus of more timely schedule feedback. 

Interesting stuff!

/Steve

I don't speak for Microsoft.

wozniak@utkux1.utk.edu (Bryon Lape) (06/06/90)

	Here at UT we use Dr. Mills' books even at Freshamn level
(structured programming class).  I will get the titles and post them
tomorrow.

	I did have a class last year using one of his books.

-bryon lape-

wdr@wang.com (William Ricker) (06/06/90)

This note examines (a) the bibliography of Mill's flagship article
in IEEE Software, and (b) what DeMarco said contemporaneously.

----------------

Harlan Mills discusses "data structured programming, functional verification
and cleanroom software development" and how they've been used in
industry in IEEE Software's special issue on Fundamental Concepts in 
Software Engineering (a great collector's issue!), November '86, p58-66.

<< Aside to verification flamers: H.D.Mills uses rigorous, but non-formal,
proofs using function theory instead of Hoare Axioms: "In practice, functional
verification is harder to teach but easier to scale up to large prgrams because
of the presence of algebraic structure in an explicit form." 
[If you FOLLOWUP this aside, please change the SUBJECT: !!]>>

Mills cites himself:
Mills & Linger, "Data Structured Programming: Program Design without Arrays
and Pointers", IEEE Trans.SwEng, Vol SE-12 #2, Feb'86 pp 192-197.

Currit, Dyer & Mills, "Certifying the reliability of Software",
SE-12 #1, Jan.'86, p3-11.

Linger, Mills & Witt, Structured Programming: Theory & Practice,
(Reading: Addision-Wesley, 1979).

Mills, Software Productivity (Boston: Little Brown, 1983)

Mills et al., Principles of COmputer Programming: A Mathematical
Approach (Rockleigh NJ: Allyn and Bacon, 1987).
 (a new undergraduate text to provide the background for his
techniques early, including how to scale up from toy programs to
real life. hmm. I should get a copy ...)

----------------

Tom DeMarco, Controlling Software Projects, (New York: Yourdon Press, 1982).
Chapter 22 is "Zero Defect Development.  Unfortunately, a very short
chapter with no relevant references (one ref is to problem statements).

One general reference given:

P.B. Crosby, Quality is Free: The art of making quality certain (New York:
McGraw-Hill, 1979).

DeMarco& Lister's Peoplware (New York: Dorset House, 1987) cites 
Harlan Mills "Software Productivity in the Enterprise" in Software 
Productivity (Boston: Little, Brown, 1983).

  Peopleware is a great book on the  work environment, team building, 
and how to (mis)manage creative people and software, but doesn't address 
the clean-room concept per se.  I hope I don't need to belabor DeMarco's
two books mentioned here in this newsgroup, since I would expect all of
you already have them.
-- 
/bill ricker/
wdr@wang.com a/k/a wricker@northeastern.edu
*** Warning: This account not authorized to express opinions ***

bwf@cbnewsc.att.com (bernard.w.fecht) (03/07/91)

In a recent IEEE Software article (Nov '90, "Engineering Software under
Statistical Quality Control"), Cobb and Mills reference the following:

"H.D. Mills, M. Dyer, and R. C. Linger, "Cleanroom Software Engineering,"
IEEE Software, Nov 1986

which I think has an error, since the artile isn't in the Nov 1986 issue
of IEEE Software.  Anyone know where it might really be??

Also, does anyone have good references and/or experiences with "cleanroom"
that they might relay to me?  Thanks.

Bill Fecht

marick@m.cs.uiuc.edu (Brian Marick) (03/08/91)

bwf@cbnewsc.att.com (bernard.w.fecht) writes:

>Also, does anyone have good references and/or experiences with "cleanroom"
>that they might relay to me?  Thanks.

Cleanroom Software Engineering
Harlan D. Mills, Michael Dyer, and Richard Linger
IEEE Software, September, 1987

Certifying the Reliability of Software. P. Allen Currit, Michael
Dyer, and Harlan D. Mills.  Transactions on Software Engineering.
V. SE-12, No 1, January 1986.

Cleanroom Software Development, An Empirical Evaluation.  Richard W.
Selby, Victor R. Basili, and F. Terry Baker.  Transactions on Software
Engineering, V. SE-13, No. 9, September 1987.

R. C. Linger and H. D. Mills. "A Case Study in Cleanroom Software
Engineering: The IBM COBOL Structuring Facility."  Proceedings
of COMPSAC '88, IEEE Computer Society Press, 1988.

Harlan D. Mills and J. H. Poore, "Bringing Software Under
Statistical Quality Control," Quality Progress, November 1988, pp. 52-55.

--------------------

If anyone has any references or experiences that address 

1. the *cost* of cleanroom engineering
2. use of cleanroom during maintenance

please post.  I have heard, through the grapevine, of costs many times
higher than traditional methods, but haven't seen anything published.

Brian Marick
Motorola @ University of Illinois
marick@cs.uiuc.edu, uiucdcs!marick