There are three teams involved when the Cleanroom process is used for large system development:
- The specification team This group is responsible for developing and maintaining the system specification. Customer-oriented specifications (requirements definition) and mathematical specifications for verification are produced by this team. In some cases, when the specification is complete, the specification team will also take responsibility for development.
- The development team This team has the responsibility of developing and verifying the software. The software is not executed during the development process. A structured, formal approach to verification based on inspection of code supplemented with correctness arguments is used.
- The certification team This team is responsible for developing a set of statistical tests to exercise the software after it has been developed. These tests are based on the formal specification. Test case development is carried out in parallel with software development. The test cases are used to certify the software reliability. Reliability growth models, discussed in Chapter XX, may be used to decide when to stop testing.