Cleanroom Software


·       Abstract
·       What is Clean room Software?
·       Evolution of Clean room Software.
·       Clean room Software Technology
·       Changing the organization
a)    Introductory Implementation
b)   Full Implementation
c)    Advanced Implementation
·       Myths and Realities surrounding Cleanroom
·       Object Oriented Software Engineering and Cleanroom
·       Box Structure
a)    Black Box
b)   State Box
c)    Clear Box
·       Clean room and Capability Maturity Model
·       Key Factor : Incremental Development Life Cycle
·       Clean room Comparison
·       Benefits of clean room Software
·       Clean room Software Today
·       Summary


The clean room process is a theory-based , team – oriented process for the development and certification of high – reliability software systems under statistical quality control. Its principal objective is to develop software that exhibits zero failures in use. For this purpose the life cycle is different from conventional software development techniques.

The approach combines mathematical- based methods of software specification, design and correctness verification with statically, usage-based  testing to certify software fitness for use. Therefore the goals in this method is to reduce the failures found during testing by enabling good and correct designs that avoid rework. Most designs pass through detailed specifications bad modeling which are evaluated and proved for correctness using formal methods.


What is Clean Room  Software?

                    Clean room combines formal methods of requirements and design with statistical usage testing to produce software with nearly none or no effects. Software development follows some model. A really bad model (but very common) is:
                               “Code and fix”
                      “Design at the keyboard”

These make a programmer figure out what a program needs to do, design algorithms, data, write it and debug it at the same time. A lot of different kinds of work all done mixed together . This is very difficult.

                    Clean room software engineering is a theory – based, team-oriented process for development and certification of high-reliability software systems under statistical quality control. A principle objective of the Clean room process is development of software that exhibits zero failures in use. The Clean room name is borrowed from hardware Clean rooms , with their emphasis on rigorous engineering discipline and focus on defect prevention rather than defect removal

Why Clean room Software?

Developing Software under statistical quality control:-

                   The Clean room process embeds software development and within a statistical quality control framework. Mathematically – based software development processes are employed to create software that is correct by design, and statistical usage testing processes are employed to provide inferences about software reliability. This systematic process of certification of software fitness for use at delivery.

                     The value of process under statistical quality control is well illustrated by modern manufacturing processes where the sampling of output is directly fed back into processes to control quality. Once the discipline of statistical quality control is in place, management has objective visibility into the software development process and can control process changes to control product quality.

Key characteristics of the Clean room process are an  incremental development life cycle and independent quality assessment through statistical testing. The development life cycle starts with a specification that not only defines function and performance requirements, but also  identifies operation usage of the software and a nested sequence of user-function.

Clean room Application and  results:

              The Clean room processes can be applied to development software of new software systems and evolution of legacy systems:

·      New Systems:

The Clean room processes provide a rigorous management and technical framework for developing new software systems under intellectual control. Theory-based processes for specification, design, and verification produce software that exhibits very high quality at the inception of testing. Incremental development permits early quality assessment though of testing. Incremental development permits early quality through statistical testing and user feedback on system function , and avoids risks associated with component integration late  in the cycle.

 Legacy Systems:

Modifications and extensions to legacy systems can be developed with the Clean room processes. Components of legacy systems can be re-engineered to  Clean room quality use of structuring, design abstraction, correctness verification, and statistical testing techniques.

 Clean room is language-environment and  application – independent and has been used to develop and evolve a variety of systems, including real-time, embedded, host, distributed, workstation , client – server and microcode systems. Clean room prototyping and object-oriented development and component functional semantics and certification of component reliability.

             The  processes has been demonstrated in software development projects in industry, as well as in NASA and the DoD STARS (Software Technology for Adaptable , Reliable System) program. Experience has shown substantial improvements over traditional results.
              Improvements of 10 to 20x and substantially more over baseline  performance have been reported. Failures in field use have been greatly reduced over prior experience.

            For Example,
                                 IBM developed an embedded, real-time, bus architecture, multiple-processor device controller product that exhibited no failures in three years use at over 300 customer locations.

                     Significant improvements over baseline performance have been reported.

             For Example,
                              An Ericson Telecom project to develop a 374 KLOC operating system reported a network  management productivity and an IBM project to develop a network management and outage avoidance product reported a 2x improvement in development project reported a 4.6x productivity gain.
Life Cycle Costs:
                      Reductions in life cycle costs through decreases in testing, error correction and maintenance have been reported.

               For Example,
                            IBM developed a COBOL structuring  product that exhibited just seven minor errors in the first three years of field use, all simple fixes , with a corresponding drop in maintenance costs compared to baseline for similar products.

No comments: