Cleanroom Software Engineering Practices

  • Authors:
  • Shirley A. Becker;James A. Whittaker

  • Affiliations:
  • -;-

  • Venue:
  • Cleanroom Software Engineering Practices
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

From the Book:Often, those of us that practice Cleanroom are asked, "What is Cleanroom?" Cleanroom Software Engineering is a set of techniques and practices for the specification, development and certification of software-intensive systems. It is based on the work of the late Harlan D. Mills, one of the world's foremost computer scientists and an early pioneer of what we now call "software engineering." Dr. Mills made a practice of success in software development at IBM where he achieved IBM's highest technical designation, Fellow. He did so by applying engineering rigor to the software development process.Dr. Mills' Cleanroom method is based on the principles that: 1) programs are rules for mathematical functions; 2) software testing is sampling. The former principle allows specifications for software to be written in precise functional notation and provides mechanisms to prove that a developed program correctly implements its specification. The latter principle allows testing to be conducted as a scientific experiment, providing quantitative measures about the software being developed and also maintaining a framework for statistical process control.Dr. Mills' work has evolved into a set of techniques called Cleanroom Software Engineering. It is comprised of the following techniques, which are described in detail in Idea Group Publishing's Cleanroom Software Engineering Practices: Formal specification and design of intended behavior; Incremental development process model.; Stepwise refinement of specifications to code; Correctness verification of developed code; Statistical certification of compiled software products.Sections of Cleanroom Software Engineering Practices are focused on organizational issues for the effective implementation of Cleanroom techniques. These concepts are primarily an outgrowth of experiences with large-scale projects that were distributed across many sites. The concepts on process improvement, information management and team-based development provide a foundation upon which Cleanroom techniques can be introduced in an organization. The authors discussed Cleanroom Software Engineering techniques and their use in industry. Both of them have had years of experience using Cleanroom technology and had been writing about Cleanroom mostly from a researcher's perspective. This was typical. There were many excellent articles on the theoretical aspects of Cleanroom, but in a practical sense Cleanroom has been a well-kept secret. The Cleanroom method has been used successfully on projects of various sizes and levels of complexity but success stories of its use have focused on a particular aspect or on final results but while providing few details on its actual implementation.The authors decided that it was time to collaborate with other practitioners in order to develop a comprehensive set of guidelines for the implementation of Cleanroom. The objective of Cleanroom Software Engineering Practices is to bring together concepts, lessons learned and best practices resulting from Cleanroom projects with which the authors participated in the past several years.