Cleanroom
software engineering is one of the fastest emerging software development processes
and has been designed for the production of the software systems and
applications with a reliability of certificate level. The credit for the
development of this process goes to Harlan Mills and a couple of his colleagues
among which one was Alan Hevner at the IBM Corporation.
What is Cleanroom Software Engineering?
- The cleanroom software
engineering is focused on defect prevention rather than their effective
removal.
- The process was named so since the word cleanroom evoked the sense of
cleanrooms that are used by the electronics industry for preventing the defects
from entering the semiconductors during the fabrication process.
- The first time
when the cleanroom process was used was in the late 80s.
- This process
began to be used for military demonstration process in the early 1990s.
Principles of Cleanroom Approach
Cleanroom process has its own principles which we
have discussed below:
- Development
of software systems and applications based up on formal methods: Box
structure method is what that is used by the cleanroom development for
specifying and designing a software product. Later, team review is used for
carrying out verification of the design i.e., whether it has been
correctly implemented or not.
- Statistical
quality control through incremental implementation: An iterative approach
is followed in the cleanroom software engineering process i.e., the
software system is evolved through increments in which the implemented
functionality gradually increases. Pre–established standards are used
for measuring the quality of all the increments for making verification that the process is making acceptable process. In case the process
fails to meet the quality standards, testing of the current increment is
stopped and the process is returned to the designing phase.
- Statistically
sound testing: Software testing in cleanroom development process is
carried as a disguise of a statistical experiment. A subset that
represents software’s i/p and o/p trajectories is selected and then
subjected to testing. The sample so obtained is then considered for statistical
analyzation so as to get an estimation
of the software’s reliability and level of confidence.
Features of Cleanroom Software Engineering
Software
products developed using the cleanroom software engineering process have zero
defects at the delivery time. Below mentioned are some of the characteristics
features of the cleanroom software engineering:
- Statistical
modeling
- Usage
scenarios
- Incremental
development and release
- Separate
acceptance testing
- No
requirement of unit testing and debugging
- Formal
reviews with verification conditions
The
defects rate was recorded as follows:
- <3 .5=".5" and="and" delivered="delivered" kloc="kloc" o:p="o:p" per="per">3>
Basic
technologies thus used can be listed as:
- Incremental
development: Each increment is carried out from end – to – end and in
some cases there is overlapping development of the increments. This whole
process takes around 12 – 18 weeks and partitioning though being critical
proves to be difficult.
- Function
– theoretical verification: A parser may check the constructed program for
syntax errors but it cannot be executed by the program developer. Verification
conditions drive the team review for verification. Verification is
improved by 3- 5 times than debugging. Formal inspections also fall under
this category.
- Formal
specifications: This further includes:
a) Box
structured specification: It includes 3 types of boxes namely:
Ø Black
box
Ø State
box
Ø Clear
box
b) Verification
properties
c) Program
functions
- Statistical
usage testing: It helps in implementing cost effective orientation and
process control. It provides a stratification mechanism to deal with
situations that are critical.
No comments:
Post a Comment