In this article we discuss the
cleanroom approach in detail. The size of the team is usually small
and is divided in to following three sub – teams:
- Specification team: This team is responsible for the development and maintenance of the
specifications.
- Development team: This team is responsible for the development and verification of the software.
- Certification team: This team is
responsible for the development of statistical tests and reliability
growth models.
The incremental development is always carried
out under statistical quality control so that the performance can be assessed
at the end of every iteration using the following measures:
- Errors per KLOC
- Rate of growth in MTTF
- Number of sequential
error free tests.
The software development in cleanroom
approach is purely based up on the mathematical principles whereas the testing
is based up on the statistical principles.
- Firstly, the system to be developed
is formally specified and an operational profile is created. This profile and
the formal specifications are then used to define the software increments which
are then used for the two purposes namely:
- Construction of a
structured program
- Designing of
statistical tests: These tests also contribute to the first purpose.
- The constructed program is then
formally verified and integrated with the increment.
Below mentioned is the flow of
cleanroom approach:
- Software requirements
specification
- Software design and
development
- Incremental software
delivery
- Incremental
statistical testing
- Regression testing
- Software reliability
measurement
- Process error
diagnosis and correction
- The incremental development planning
is divided in to two parts namely:
- Functional
specification: It involves formal design correctness verification.
- Usage specification: It involves statistical test case generation.
- Both these processes then merge down to
statistical testing which then follows quality certification model and MTTF
estimates.
- The whole cleanroom project develops around the incremental
strategy.
- Requirements are gathered from the customers and elicited and refined
via the traditional methods.
- The
definition of the data, its behavior and procedures are isolated and separated by
the box structures at every level of refinement.
- Specifications or the black
boxes when iteratively refined become state boxes i.e., architectural designs
and clear boxes i.e., the component–level designs.
- Formal inspections are
carried out to make sure that the code confirms to standards, it is
syntactically correct and its correctness has been verified.
- Statistical usage
planning involves creation of tests cases that match with the probability
distribution of the usage pattern
- In place of the exhaustive testing, a sample
of all the test cases is employed.
- Once the programmers are done with all 3
activities (i.e., verification, inspection, usage testing, and defect removal)
the increment is considered to be certified and ready to be integrated.
- For
developing a right system, customer feedback and involvement are 2 necessary
elements throughout the process.
- Increment planning is required so that the
customer’s system requirements can be clarified.
- There is a requirement of
management of resources and control of complexity which is also achieved
through incremental planning.
- In order to develop a quality product a control
over the software development cycle and process measurement is very much
required.
- Following are the benefits of concurrent planning:
- Concurrent engineering
- Step wise integration
- Continuous quality
feedback
- Continuous customer
feedback
- Risk management
- Change management
- All of the above benefits are achieved
respectively by:
- Certification and
scheduling parallel development
- Testing cumulative
increments
- Statistical process
control
- Through actual use
- Treatment of the high
risk elements in early phases
- Systematic
accommodation of the changes
Design verification advantage allows
the cleanroom teams to verify each and every line of code.
No comments:
Post a Comment