Cleanroom Software Engineering

Introduction to cleanroom software engineering

  • It is an engineering approach which is used to build correctness in developed software.
  • The main concept behind the cleanroom software engineering is to remove the dependency on the costly processes.
  • The cleanroom software engineering includes the quality approach of writing the code from the beginning of the system and finally gathers into a complete a system.
Following tasks occur in cleanroom engineering:

1. Incremental planning
  • In this task, the incremental plan is developed.
  • The functionality of each increment, projected size of the increment and the cleanroom development schedule is created.
  • The care is to be taken that each increment is certified and integrated in proper time according to the plan.
2. Requirements gathering
  • Requirement gathering is done using the traditional techniques like analysis, design, code, test and debug.
  • A more detailed description of the customer level requirement is developed.
3. Box structure specification
  • The specification method uses box structure.
  • Box structure is used to describe the functional specification.
  • The box structure separate and isolate the behaviour, data and procedure in each increment.
4. Formal design
  • The cleanroom design is a natural specification by using the black box structure approach.
  • The specification is called as state boxes and the component level diagram called as the clear boxes.
5. Correctness verification
  • The cleanroom conducts the exact correctness verification activities on the design and then the code.
  • Verification starts with the highest level testing box structure and then moves toward the design detail and code.
  • The first level of correctness takes place by applying a set of 'correcting questions'.
  • More mathematical or formal methods are used for verification if correctness does not signify that the specification is correct.
6. Code generation, inspection and verification
  • The box structure specification is represented in a specialized language and these are translated into the appropriate programming language.
  • Use the technical reviews for the syntactic correctness of the code.
7. Statical test planning
  • Analyzed, planned and designed the projected usages of the software.
  • The cleanroom activity is organized in parallel with specification, verification and code generation.
8. Statistical use testing
  • The exhaustive testing of computer software is impossible. It is compulsory to design limited number of test cases.
  • Statistical use technique execute a set of tests derived from a statistical sample in all possible program executions.
  • These samples are collected from the users from a targeted population.
9. Certification
  • After the verification, inspection and correctness of all errors, the increments are certified and ready for integration.

Cleanroom process model

  • The modeling approach in cleanroom software engineering uses a method called box structure specification.
  • A 'box' contains the system or the aspect of the system in detail.
  • The information in each box specification is sufficient to define its refinement without depending on the implementation of other boxes.
The cleanroom process model uses three types of boxes as follows:

1. Black box
  • The black box identifies the behavior of a system.
  • The system responds to specific events by applying the set of transition rules.
2. State box
  • The box consist of state data or operations that are similar to the objects.
  • The state box represents the history of the black box i.e  the data contained in the state box must be maintained in all transitions.
3.  Clear box
  • The transition function used by the state box is defined in the clear box.
  • It simply states that a clear box includes the procedural design for the state box.