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:
- Program verification
- Software engineering
modeling
- 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:
- Zero failures: This
is the objective itself and the software is developed with a minimum
number of errors if zero not possible.
- 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.
- 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:
Post a Comment