Subscribe by Email

Monday, January 14, 2013

What are requirements for Cleanroom Software Engineering? What is the need for CSE?

The process got its name from the term cleanroom which is part of the process that fabricates the semiconductors. The basic ideology behind the cleanroom software engineering process is that it is more focused up on avoiding the defects rather than removing them.  It makes use of a combination software quality methods and formal methods. Cleanroom software engineering has shifted the individual craftsmanship to peer reviewed process, from sequential development to incremental one, from informal designing to discipline specification and designing, from informal coverage to statistical usage testing and so on.
Cleanroom software engineering is actually an integration of the following three practices:
  1. Program verification
  2. Software engineering modeling
  3. Statistical software quality assurance
The correctness of the design specifications is verified via mathematically based proof solutions. The role of the statistical usage testing here is to dig out the high impact errors. 
The following the stages through the incremental development:
1.   Establishing the requirements
2.   Formal specifications
3.   Development of the increment
4.   Delivery of the software
5.   Requirements change request

Why Cleanroom Software Enginnering is required?

- Cleanroom software engineering is required to develop software systems and application with zero defects. 
- Though it takes a lot of time to be implemented but the payoff is quite high and both quality and productivity are increased. 
- The actual cleanroom process begins after the formal specification has been done. 
- The focus then shifts towards building a more explicit design. 
- Next, the design is verified as per the specifications. 
- Two things namely statistical and mathematical reasoning are combined and used together by the cleanroom approach for test generation and testing as well. 
- Cleanroom software engineering has proven to be the first practical attempt for developing the software with statistical quality control and delivering the software product with a known MTTF.

Requirements of Cleanroom Software Engineering

- The key requirements of cleanroom approach are nothing but specifications, requirements and verification methods.
- These formal specifications and verifications are used for developing software of high quality and with a minimum of errors. 
- Statistical usage testing is also required for the evaluation of the reliability of the software product. 

Cleanroom software engineering is followed by a number of benefits:
  1. Zero failures: This is the objective itself and the software is developed with a minimum number of errors if zero not possible.
  2. Short development cycles: These are the resultant of the incremental process. The rework is avoided and therefore new teams get a chance to experience productivity increase that has increased by two folds.
  3. Longer product life: The product life is kept longer with the help of a usage model and investments detailed specifications.
- It is also a fact that the cleanroom techniques are not much used since some people believe them to be too mathematical, theoretical, radical etc. to be used in the real development processes. 
- Also, these techniques rely heavily on the statistical quality control and correctness verification rather than relying on unit testing. 
- This means that there is a large deviation from the traditional software development approach. 
- Proving the program is always there in the option list but it requires a lot of intensive sophisticate mathematical work. 
- Therefore, in place of this, cleanroom uses an alternative.
- A team code inspection is structured in terms of verification conditions and program functions.
-  Then an informal review is carried out which confirms whether or not all the verification conditions have been satisfied. 

No comments:

Facebook activity